// 开单=》合同变更发起 import React from "react"; import { Table, Modal, message, Spin, Input, Select, Button, Form, Upload, Popconfirm, AutoComplete, DatePicker, Col, Tabs, Tag, Radio, Icon, Tooltip } from "antd"; // import $ from "jquery/src/ajax"; import "../userMangagement.less"; import "../billing.less"; import moment from "moment"; import { shenghePeo } from "@/tools.js"; import Picture from "@/manageCenter/publicComponent/picture"; import ResolutionDetail from "@/resolutionDetail"; import quxiao from "../../../../../image/quxiao.png"; import tongguo from "../../../../../image/tongguo.png"; import $ from "jquery"; import OrderRiZi from "@/orderRiZi.jsx"; import { orderTypes, customerType, jiedian, boutique, ssalesType, qsalesType, cuiJieDian, salesList, vipYear, } from "@/dataDic.js"; import { splitUrl, getProcessStatus, getLiquidationStatus, getboutique, getApprovedState, getjiedian, getCuikuan, getProjectName, moneyVerify, getProcessStatusNew, } from "../../../tools.js"; import PicturesWall from "./changeComponent/picturesWall.js"; import { changeType, getChangeType } from "./changeComponent/changeDetailYxgly"; import ImgList from "../../../common/imgList"; import OrderItemStatus from "../../../common/orderItemStatus"; import EnterpriseNameChange from "../../../common/enterpriseNameChange"; import ProjectOperation from "../../../common/projectOperation"; import ProjectOperationVip from "../../../common/projectOperation/vip"; import NewAddProject from "../../../common/projectOperation/newAddProject" import NewEditProject from "../../../common/projectOperation/newEditProject" import { instanceOf } from "prop-types"; import UpdateSales from './updatesales'; const Option = AutoComplete.Option; const confirm = Modal.confirm; const RadioGroup = Radio.Group; const NewService = Form.create()( React.createClass({ //查看项目列表 loadData(record) { this.state.data = []; this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/getOrderTask", data: { orderNo: record ? record.orderNo : this.props.datauser.orderNo, }, success: function (data) { let theArr = []; if (!data.data) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; thisdata.key = i; thisdata.sort = thisdata.cSort; thisdata.declarationBatch = thisdata.declarationBatch || undefined; //申报批次 thisdata.ifCertificationFee = isNaN( parseInt(thisdata.ifCertificationFee) ) ? undefined : thisdata.ifCertificationFee; //是否包含申报批次 theArr.push(thisdata); } } this.departmentList(); this.setState({ dataSource: theArr, pagination: false, // 禁用变更类型 changeFlag: false, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //收款节点 loadDatas(record) { this.state.data = []; this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/selectOrderDun", data: { orderNo: record ? record.orderNo : this.props.datauser.orderNo, }, success: function (data) { let theArr = []; if (!data.data) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; theArr.push({ key: i, id: thisdata.id, }); } } this.setState({ dataSource: theArr, pagination: false, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, getInitialState() { return { dataView: null, PublicView: null, contentView: '', remarksView: '', contentViewLength: 0, contentViewLength1: 0, columnsView: [ { title: "服务时间", dataIndex: "serviceTimes", key: "serviceTimes", width: '80px' }, { title: "服务内容", dataIndex: "content", key: "content", width: '300' }, { title: "备注", dataIndex: "remarks", key: "remarks", width: '300' }, { title: "操作", dataIndex: "cz", key: "cz", width: '100px', render: (text, record) => { return ( <div> {this.state.processStatus == 0 ? ( <Button onClick={(e) => { e.stopPropagation(); this.viewConfirm(this.delectView, record); // this.setState({ // addFlag: false, // }); }} > 删除 </Button> ) : ( "" )} </div> ); }, }, ], columnsRecord: [ { title: "序号", dataIndex: "id", key: "id", }, { title: "客户名称", dataIndex: "nickname", key: "nickname", }, { title: "公出申请人", dataIndex: "aname", key: "aname", }, { title: "公出时长", dataIndex: "duration", key: "duration", render: (text, record) => { return <div>{text + "小时"}</div>; }, }, { title: "公出地点", dataIndex: "userName", key: "userName", }, { title: "公出时间", dataIndex: "releaseStarts", key: "releaseStarts", render: (text, record) => { return ( <div> <div>{text}</div> <div style={{ paddingLeft: "44px" }}>至</div> <div>{record.releaseEnds}</div> </div> ); }, }, { title: "打卡时间", dataIndex: "clockInTimes", key: "clockInTimes", }, { title: "公出目标", dataIndex: "remarks", key: "remarks", width: '300' }, ], dataSourceView: [], coorVisible: "none", personnel: [], viewKey: 0, modalView: false, modalRecord: false, closable: false, disabledView: "none", patentType: "", patentTypeList: [], rotateDeg: 0, isCaoGao: false, cuiFlag: false, startRemarks: "", remarksC: "", loading: false, logData: [], visible: false, cuiDataSource: [], status: 4, orgCodeUrl: [], voucherUrl: [], replenishUrl: [], contentUrl: [], customerArr: [], declarationBatch: 1, //申报批次 默认第一批 // 禁用变更类型转换 changeFlag: false, // 合同额禁用 hetongFlag: true, // 项目及催款禁用 listFlag: true, mark: false, activeKey: "1", typeChange: undefined, bussStats: false, checkedKeys: [], lookflowList: [], contractUrl: [], applicationUrl: [], changeAmount: "0", active: { applySign: false, }, lookState: false, signBillVisible: false, commod: "", columns: [ { 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}{" "} {/* { record.cSort != 6 && <Tag color="#108ee9" onClick={(e) => { e.stopPropagation(); this.showRes(record); }} > 已拆 </Tag> } */} </span> ); } else { return text; } }, }, { title: "金额(万元)", dataIndex: "commodityPrice", key: "commodityPrice", width: 50, }, { title: "负责人", dataIndex: "contacts", key: "contacts", }, { title: "负责人电话", dataIndex: "contactsMobile", key: "contactsMobile", }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", width: 60, render: (text) => { return getProjectName(text); }, }, { title: "主要项目", dataIndex: "main", key: "main", width: 50, 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 ( // !!text && JSON.parse(text).map(item => // <div>{item}</div> // ) <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> ) }, }, { title: "操作", dataIndex: "ABC", key: "ABC", width: 80, render: (text, record) => { return ( this.state.processStatus == 0 && <div> <div> <Button onClick={(e) => { e.stopPropagation(); this.showConfirm(this.delectRow, record); this.setState({ addFlag: false, }); }} > 删除 </Button> </div> <div> <Button onClick={(e) => { e.stopPropagation(); this.tableRowClick(record) }} > 编辑 </Button> </div> </div> ); }, }, ], proColumns: [ { title: "变更状态", dataIndex: "type", key: "type", width: 70, render: (text, record) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <span> <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> {/* {record.splitStatus == 1 ? ( <Tag color="#108ee9">父项目</Tag> ) : ( "" )} {record.splitStatus == 2 ? ( <Tag color="#108ee9">子项目</Tag> ) : ( "" )} */} </span> ); }, }, { 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", width: 50, }, { title: "金额(万元)", dataIndex: "commodityPrice", key: "commodityPrice", width: 50, render: (text, record) => { if (record.splitStatus == 2) { return "/"; } else { return text; } }, }, { title: "主要项目", dataIndex: "main", key: "main", width: 50, render: (text) => { return text ? "是" : "否"; }, }, { title: "项目负责人", dataIndex: "receiverName", key: "receiverName", }, { 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> ) }, }, { title: "操作", dataIndex: "ABC", key: "ABC", width: 80, render: (text, record) => { return ( <div> <div> <Button onClick={(e) => { e.stopPropagation(); this.showConfirm(this.changeDeletePro, record); }} disabled={this.state.listFlag} style={{ display: this.state.displayList ? "none" : "block", }} > 删除 </Button> </div> <div> <Button onClick={(e) => { e.stopPropagation(); this.editPro(record); }} disabled={this.state.listFlag} style={{ display: this.state.displayList ? "none" : "block", }} > 编辑 </Button> </div> </div> ); }, }, ], detailColumns: [ { title: "变更状态", dataIndex: "type", key: "type", render: (text, record) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <span> <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> {/* {record.splitStatus == 1 ? ( <Tag color="#108ee9">父项目</Tag> ) : ( "" )} {record.splitStatus == 2 ? ( <Tag color="#108ee9">子项目</Tag> ) : ( "" )} */} </span> ); }, }, { 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", width: 50, }, { title: "金额(万元)", dataIndex: "commodityPrice", key: "commodityPrice", width: 50, render: (text, record) => { if (this.props.isZxs) { return <span>***</span>; } else if (record.splitStatus == 2) { return "/"; } else { return <span>{text}</span>; } }, }, { title: "主要项目", dataIndex: "main", key: "main", width: 50, render: (text) => { return text ? "是" : "否"; }, }, { title: "项目负责人", dataIndex: "receiverName", key: "receiverName", }, { 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> ) }, }, ], detailContactsLists: [ { title: "变更状态", dataIndex: "type", key: "type", render: (text) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> ); }, }, { title: "项目名称", dataIndex: "commodityName", key: "commodityName", render: (text, record) => { let dataArr = this.state.proDataSource || []; if (record.ctid) { return <span>{text + "-" + record.ctid}</span>; } else { let tid = record.tid; let ctid = ""; dataArr.forEach((item, index) => { if (item.tid == tid) { ctid = item.id; } }); return <span>{text + "-" + ctid}</span>; } }, }, { title: "项目分类", dataIndex: "projectType", key: "projectType", render: (text) => { let arr = this.state.proDataSource || []; let str = ""; for (let i = 0; i < arr.length; i++) { if (this.state.proDataSource[i].cSort == text) { str = this.state.proDataSource[i].cname; return <span>{str}</span>; } } }, }, { title: "催款科目", dataIndex: "dunTypeName", key: "dunTypeName", render: (text, record) => { 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 { if (this.props.isZxs) { return <span>***</span>; } 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>; }, }, ], resVisible: false, columnsrizhi: [ { title: "流程", dataIndex: "processName", key: "processName", }, { title: "操作人", dataIndex: "adminName", key: "adminName", }, { title: "时间", dataIndex: "createDate", key: "createDate", }, ], contactList: [], ContactsLists: [ { title: "催款科目", dataIndex: "dunSubject", key: "dunSubject", render: (text, record) => { return ( <Select placeholder="请选择催款科目" value={record.dunSubject} style={{ width: "150px" }} disabled onChange={(e) => { record.dunSubject = e; this.setState({ contactList: this.state.contactList }); }} > {jiedian.map(function (item) { return ( <Select.Option key={item.value}>{item.key}</Select.Option> ); })} </Select> ); }, }, { title: "金额(万元)", dataIndex: "money", key: "money", render: (text, record) => { return ( <Input type="number" value={record.money} placeholder="请输入金额(必填项)" disabled key={record.id} required="required" onChange={(e) => { record.money = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{ width: "120px" }} /> ); }, }, { title: "催款状态", dataIndex: "dunStatus", key: "dunStatus", render: (text) => { return getCuikuan(text); }, }, { title: "操作", dataIndex: "dels", key: "dels", render: (text, record) => { return ( <div> { <Popconfirm title="是否删除?" onConfirm={() => { this.confirmDelet(record.key); }} okText="删除" cancelText="不删除" > <Button style={{ marginRight: "10px", color: "#ffffff", background: "#f00", border: "none", display: this.state.processStatus == 0 ? "block" : "none", }} > 删除 </Button> </Popconfirm> } {record.id ? ( "" ) : ( <Button type="primary" onClick={this.contactSave}> 保存 </Button> )} </div> ); }, }, ], ContactsListsNew: [ { title: "项目名称", dataIndex: "commodityName", key: "commodityName", render: (text, record, index) => { let dataArr = this.state.dataSource || []; if (text) { return <span>{text + "-" + record.tid}</span>; } return ( <Select placeholder="请选择名称" style={{ width: "150px" }} disabled={ this.state.getLoad && record.sortName ? true : false } onChange={(e) => { // let num = e.lastIndexOf("-"); // let ctid = e.substr(num + 1); // record.sortName = e.substring(0, num); // dataArr.forEach((item) => { // if ( // item.commodityName == record.sortName && // ctid == item.id // ) { // record.cname = item.cname; // record.tid = item.id; // record.isSave = true; // record.sort = item.sort; // cuiJieDian.forEach((item) => { // if (item.value == record.sort) { // record.arr = item.children; // let yearFlag = true; // if (record.sort == 6) { // yearFlag = false; // } // this.setState({ // getLoad: true, // yearFlag, // }); // } // }); // } // }); let proData = dataArr[e]; record.cname = proData.cname; record.tid = proData.id; record.isSave = true; record.sort = proData.sort; cuiJieDian.forEach((item) => { if (item.value == record.sort) { record.arr = item.children; let yearFlag = true; if (record.sort == 6) { yearFlag = false; } this.setState({ getLoad: true, yearFlag, }); } }); }} > {dataArr.map((item) => { return ( <Select.Option key={item.id} value={item.key}> {item.commodityName + "-" + item.id} </Select.Option> ); })} </Select> ); }, }, { title: "项目分类", dataIndex: "projectType", key: "projectType", render: (text, record) => { if (text) { let arr = this.state.dataSource || []; let str = ""; for (let i = 0; i < arr.length; i++) { if (this.state.dataSource[i].sort == text) { str = this.state.dataSource[i].cname; return <span>{str}</span>; } } if (!str) { return <span>未知</span>; } } if (this.state.getLoad) { return ( <Select style={{ width: "150px" }} placeholder="请选择分类" value={record.cname} > <Select.Option key={record.sort} value={record.cname}> {record.cname} </Select.Option> </Select> ); } else { return ( <Select style={{ width: "150px" }} placeholder="请选择分类"> <Select.Option key={record.sort} value={record.cname}> {record.cname} </Select.Option> </Select> ); } }, }, { title: "催款科目", dataIndex: "dunTypeName", key: "dunTypeName", render: (text, record) => { if (text) { if (record.customizeName) { return text + record.customizeName; } return <span>{text}</span>; } if (this.state.getLoad) { let arr = record.arr || []; return ( <div> <Select style={{ width: "150px", marginRight: 5 }} placeholder="请选择分类" onChange={(e) => { record.dunType = e; if (record.dunType == 0) { record.customizeTimes = ""; record.customizeName = ""; } if (e == 0) { record.dunTypeCustom = true; } else { record.dunTypeCustom = false; } if (e != 1) { this.setState({ timeFlag: true, }); } else { this.setState({ timeFlag: false, }); } if (e == 1 && record.sort == 6) { this.setState({ yearFlag: true, }); } else if (e != 1 && record.sort == 6) { this.setState({ yearFlag: false, }); } if (record.sort == 3 && e == 3) { this.setState({ boFlag: true, }); } else { this.setState({ boFlag: false, }); } }} > {arr.map((item) => { return ( <Select.Option key={item.value} value={item.value}> {item.key} </Select.Option> ); })} <Select.Option key={0} value={0}> 自定义 </Select.Option> </Select> {record.dunType == 0 ? ( <Input value={record.customizeName} placeholder="请输入自定义名称" required="required" onChange={(e) => { record.customizeName = e.target.value; this.setState({ contactList: this.state.contactList, }); }} style={{ width: "120px" }} /> ) : ( "" )} </div> ); } else { return ( <Select style={{ width: "150px" }} placeholder="请选择分类"> <Select.Option key={0} value={"请选择上一项"} ></Select.Option> </Select> ); } }, }, { title: "收款时间(特批需选择时间)", dataIndex: "waitDay", key: "waitDay", render: (text, record) => { if (record.dunTypeName) { if (record.customizeTimes) { return record.customizeTimes; } if (text == 0) { var str = "当天"; } else if (!text) { var str = ""; } else { var str = text + "天"; } return <span>{str}</span>; } return ( <div> {record.dunType == 0 ? ( <DatePicker style={{ width: 150 }} disabledDate={(e) => { let time = moment(e).valueOf(); let today = Date.parse(new Date()); if (time <= today) { return true; } }} onChange={(e, t) => { record.customizeTimes = t; }} /> ) : ( <Select placeholder="请选择时间" style={{ width: "160px" }} disabled={ this.state.approval != 0 && !this.state.timeFlag ? false : true } onChange={(e) => { record.waitDay = e; }} > <Select.Option key={0}>当天</Select.Option> <Select.Option key={3}>3天</Select.Option> <Select.Option key={5}>5天</Select.Option> <Select.Option key={7}>7天</Select.Option> <Select.Option key={15}>15天</Select.Option> </Select> )} </div> ); }, }, { 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>; } } return ( <div> <div style={{ width: 70, float: "left", marginRight: 5 }}> <Select placeholder="选择" defaultValue={"金额"} onChange={(e) => { record.boStatus = e; }} > <Select.Option key={true}>比例</Select.Option> <Select.Option key={false}>金额</Select.Option> </Select> </div> <div style={{ float: "right" }}> <Input type="number" value={record.money} key={record.id} required="required" onChange={(e) => { record.money = e.target.value; this.setState({ contactList: this.state.contactList, }); }} style={{ width: "120px" }} /> </div> </div> ) // if (this.state.boFlag) { // return ( // <div> // <div style={{ width: 70, float: "left", marginRight: 5 }}> // <Select // placeholder="选择" // defaultValue={"金额"} // onChange={(e) => { // record.boStatus = e; // }} // > // <Select.Option key={true}>比例</Select.Option> // <Select.Option key={false}>金额</Select.Option> // </Select> // </div> // <div style={{ float: "right" }}> // <Input // type="number" // value={record.money} // key={record.id} // required="required" // onChange={(e) => { // record.money = e.target.value; // this.setState({ // contactList: this.state.contactList, // }); // }} // style={{ width: "120px" }} // /> // </div> // </div> // ); // } else { // return ( // <div> // <Input // type="number" // value={record.money} // placeholder="请输入金额(必填项)" // key={record.id} // required="required" // onChange={(e) => { // record.money = e.target.value; // this.setState({ contactList: this.state.contactList }); // }} // style={{ width: "120px" }} // /> // </div> // ); // } }, }, { title: "服务年限", dataIndex: "startDate", key: "startDate", render: (text, record) => { if (record.dunTypeName) { return <span>{text}</span>; } return ( <div> {record.dunType != 0 ? ( <Select placeholder="请选择年限" style={{ width: "150px" }} disabled={this.state.yearFlag ? true : false} onChange={(e) => { record.effectiveCount = e; }} > {/* <Select.Option key={null}>无</Select.Option> */} <Select.Option key={1}>一年</Select.Option> <Select.Option key={3}>两年</Select.Option> <Select.Option key={5}>三年</Select.Option> <Select.Option key={7}>四年</Select.Option> <Select.Option key={9}>五年</Select.Option> </Select> ) : ( <div /> )} </div> ); }, }, { title: "催款状态", dataIndex: "status", key: "status", render: (text) => { return <span>{text == 1 ? "已启动" : "未启动"}</span>; }, }, { title: "操作", dataIndex: "dels", key: "dels", render: (text, record, index) => { return ( <div> {this.state.processStatus == 0 ? ( <Popconfirm title="是否删除?" onConfirm={() => { this.confirmDeletNew(record); }} okText="删除" cancelText="不删除" > <Button style={{ marginRight: "10px", color: "#ffffff", background: "#f00", border: "none", }} > 删除 </Button> </Popconfirm> ) : ( "" )} {record.isSave ? ( <Button type="primary" onClick={(e) => { this.contactSaveNew(record); }} > 保存 </Button> ) : ( "" )} </div> ); }, }, ], changeCuiList: [ { title: "变更状态", dataIndex: "type", key: "type", render: (text) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> ); }, }, { title: "项目名称", dataIndex: "commodityName", key: "commodityName", render: (text, record, index) => { let dataArr = this.state.proDataSource || []; if (text) { // return <span>{text + "-" + record.ctid}</span>; if (record.ctid) { return <span>{text + "-" + record.ctid}</span>; } else { let tid = record.tid; let ctid = ""; dataArr.forEach((item, index) => { if (item.tid == tid) { ctid = item.id; } }); return <span>{text + "-" + ctid}</span>; } } return ( <Select placeholder="请选择名称" style={{ width: "150px" }} disabled={ this.state.getLoad && record.sortName ? true : false } onChange={(e) => { let proData = dataArr[e]; record.cname = proData.cname; record.ctid = proData.id; record.isSave = true; record.sort = proData.cSort; cuiJieDian.forEach((item) => { if (item.value == record.sort) { record.arr = item.children; let yearFlag = true; if (record.sort == 6) { yearFlag = false; } this.setState({ getLoad: true, yearFlag, }); } }); }} > {dataArr.map((item, index) => { if (item.type == 3) { return ( <Select.Option key={item.id} value={item.key} disabled> {item.commodityName + "-" + item.id} </Select.Option> ); } else { return ( <Select.Option key={item.id} value={item.key}> {item.commodityName + "-" + item.id} </Select.Option> ); } })} </Select> ); }, }, { title: "项目分类", dataIndex: "projectType", key: "projectType", render: (text, record) => { if (text) { let arr = this.state.proDataSource || []; let str = ""; for (let i = 0; i < arr.length; i++) { if (this.state.proDataSource[i].cSort == text) { str = this.state.proDataSource[i].cname; return <span>{str}</span>; } } } if (this.state.getLoad) { return ( <Select style={{ width: "150px" }} placeholder="请选择分类" value={record.cname} > <Select.Option key={record.sort} value={record.cname}> {record.cname} </Select.Option> </Select> ); } else { return ( <Select style={{ width: "150px" }} placeholder="请选择分类"> <Select.Option key={record.sort} value={record.cname}> {record.cname} </Select.Option> </Select> ); } }, }, { title: "催款科目", dataIndex: "dunTypeName", key: "dunTypeName", render: (text, record) => { if (text) { return <span>{text}</span>; } if (this.state.getLoad) { let arr = record.arr || []; return ( <div> <Select style={{ width: "150px", marginRight: 5 }} placeholder="请选择分类" onChange={(e) => { record.dunType = e; if (record.dunType != 0) { record.customizeTimes = ""; record.customizeName = ""; } if (e != 1) { this.setState({ timeFlag: true, }); } else { this.setState({ timeFlag: false, }); } if (e == 1 && record.sort == 6) { this.setState({ yearFlag: true, }); } else if (e != 1 && record.sort == 6) { this.setState({ yearFlag: false, }); } if (record.sort == 3 && e == 3) { this.setState({ boFlag: true, }); } else { this.setState({ boFlag: false, }); } }} > {arr.map((item) => { record; return ( <Select.Option key={item.value} value={item.value}> {item.key} </Select.Option> ); })} <Select.Option key={0} value={0}> 自定义 </Select.Option> </Select> {record.dunType == 0 ? ( <Input value={record.customizeName} placeholder="请输入自定义名称" required="required" onChange={(e) => { record.customizeName = e.target.value; this.setState({ contactList: this.state.contactList, }); }} style={{ width: "120px" }} /> ) : ( "" )} </div> ); } else { return ( <Select style={{ width: "150px" }} placeholder="请选择分类"> <Select.Option key={0} value={"请选择上一项"} ></Select.Option> </Select> ); } }, }, { title: "收款时间(特批需选择时间)", dataIndex: "waitDay", key: "waitDay", render: (text, record) => { if (record.dunTypeName) { if (record.customizeTimes) { return record.customizeTimes; } if (text == 0) { var str = "当天"; } else if (!text) { var str = ""; } else { var str = text + "天"; } return <span>{str}</span>; } return ( <div> {record.dunType == 0 ? ( <DatePicker style={{ width: 150 }} disabledDate={(e) => { let time = moment(e).valueOf(); let today = Date.parse(new Date()); if (time <= today) { return true; } }} onChange={(e, t) => { record.customizeTimes = t; }} /> ) : ( <Select placeholder="请选择时间" style={{ width: "160px" }} disabled={ this.state.approval != 0 && !this.state.timeFlag ? false : true } onChange={(e) => { record.waitDay = e; }} > <Select.Option key={0}>当天</Select.Option> <Select.Option key={3}>3天</Select.Option> <Select.Option key={5}>5天</Select.Option> <Select.Option key={7}>7天</Select.Option> <Select.Option key={15}>15天</Select.Option> </Select> )} </div> ); }, }, { 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>; } } return ( <div> <div style={{ width: 70, float: "left", marginRight: 5 }}> <Select placeholder="选择" defaultValue={"金额"} onChange={(e) => { record.boStatus = e; }} > <Select.Option key={true}>比例</Select.Option> <Select.Option key={false}>金额</Select.Option> </Select> </div> <div style={{ float: "right" }}> <Input type="number" value={record.money} key={record.id} required="required" onChange={(e) => { record.money = e.target.value; this.setState({ contactList: this.state.contactList, }); }} style={{ width: "120px" }} /> </div> </div> ); // if (this.state.boFlag) { // return ( // <div> // <div style={{ width: 70, float: "left", marginRight: 5 }}> // <Select // placeholder="选择" // defaultValue={"金额"} // onChange={(e) => { // record.boStatus = e; // }} // > // <Select.Option key={true}>比例</Select.Option> // <Select.Option key={false}>金额</Select.Option> // </Select> // </div> // <div style={{ float: "right" }}> // <Input // type="number" // value={record.money} // key={record.id} // required="required" // onChange={(e) => { // record.money = e.target.value; // this.setState({ // contactList: this.state.contactList, // }); // }} // style={{ width: "120px" }} // /> // </div> // </div> // ); // } else { // return ( // <div> // <Input // type="number" // value={record.money} // placeholder="请输入金额(必填项)" // key={record.id} // required="required" // onChange={(e) => { // record.money = e.target.value; // this.setState({ contactList: this.state.contactList }); // }} // style={{ width: "120px" }} // /> // </div> // ); // } }, }, { title: "服务年限", dataIndex: "startDate", key: "startDate", render: (text, record) => { if (record.dunTypeName) { return <span>{text}</span>; } return ( <Select placeholder="请选择年限" style={{ width: "150px" }} disabled={this.state.yearFlag ? true : false} onChange={(e) => { record.effectiveCount = e; }} > {/* <Select.Option key={null}>无</Select.Option> */} <Select.Option key={1}>一年</Select.Option> <Select.Option key={3}>两年</Select.Option> <Select.Option key={5}>三年</Select.Option> <Select.Option key={7}>四年</Select.Option> <Select.Option key={9}>五年</Select.Option> </Select> ); }, }, { title: "催款状态", dataIndex: "status", key: "status", render: (text) => { return <span>{text == 1 ? "已启动" : "未启动"}</span>; }, }, { title: "操作", dataIndex: "dels", key: "dels", render: (text, record, index) => { return ( <div> <Popconfirm title="是否删除?" onConfirm={() => { this.changeDeleteCui(record); }} okText="删除" cancelText="不删除" > <Button disabled={this.state.listCuiFlag} style={{ marginRight: "10px", display: this.state.displayList ? "none" : "block", }} > 删除 </Button> </Popconfirm> {record.isSave ? ( <Button type="primary" style={{ marginTop: 5 }} onClick={(e) => { this.changeSaveCui(record); }} > 保存 </Button> ) : ( "" )} </div> ); }, }, ], updatas: {},//销售类型修改数据 newData: {},//新建会员记忆数据 serviceLife: [], isVip: undefined,//是否会员 isIso: undefined,//是否贯标 histYear: [], contractTerm: [],//合同期 isEdit: false,//是否可编辑 addyear: undefined,// isGive: 0,//是否赠送 cPeriod: false, // 合同期是否可编辑 }; }, getpatentTypeList() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderProject/getPatentType", success: function (data) { if (data.error.length === 0) { this.setState({ patentTypeList: data.data, }); } else { message.warning(data.error[0].message); } }.bind(this), }); }, 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.forEach((item) => { theArr.push({ key: item.id, name: item.name, id: item.id, depNo: item.depNo, }) if (item.list) { item.list.forEach((itl) => { theArr.push({ key: itl.id, name: itl.name, id: itl.id, depNo: itl.depNo, }) }); } }) } this.setState({ departmentArr: theArr, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // 拆分详细 showRes(record) { this.setState({ resVisible: true, resRecord: record, }); }, resCancel() { this.setState({ resVisible: false, }); }, //新建订单、编辑订单保存 handleSubmit(e) { e.preventDefault(); let theorgCodeUrl = []; if (this.state.orgCodeUrl.length) { let picArr = []; this.state.orgCodeUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); theorgCodeUrl = picArr.join(","); } let theReplenishUrl = []; if (this.state.replenishUrl.length) { let picArr = []; this.state.replenishUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); theReplenishUrl = picArr.join(","); } // 服务内容上传图片 let contentUrl = []; if (this.props.userDetaile) { if (this.state.contentUrl.length) { let picArr = []; this.state.contentUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); contentUrl = picArr.join(","); } else { message.info("请上传服务内容图片") return } } if (this.props.userDetaile) { if (isNaN(parseInt(this.state.totalAmount))) { message.warning("签单金额不能为空"); this.refs.totalAmountRef.focus(); return false; } if (isNaN(parseInt(this.state.firstAmount))) { message.warning("首付金额不能为空"); this.refs.firstAmountRef.focus(); return false; } if (moneyVerify(this.state.firstAmount)) { return; } if (moneyVerify(this.state.totalAmount)) { return; } if (!theorgCodeUrl) { message.warning("图片过大,上传失败"); this.refs.signFirstPayment.focus(); return false; } if (!this.state.signDate) { message.warning("签单日期不能为空"); $(".signDateRef input").focus(); return false; } if (!this.state.orderRemarks) { message.warning("订单留言不能为空"); this.refs.orderRemarksRef.focus(); return false; } } const arr = this.state.contactListNew || []; for (let i = 0; i < arr.length; i++) { if ( arr[i].dunType == 1 && arr[i].waitDay != null && this.state.approval == 0 ) { message.warning( "非特批存在填写催款节点首付时间的情况,请删除后重新填写保存" ); return false; } else if ( arr[i].dunType == 1 && arr[i].waitDay == null && this.state.approval == 1 ) { message.warning( "特批存在首付催款节点未填写时间的情况,请删除后重新填写保存" ); return false; } if (!this.state.contactListNew[i].id && this.props.userDetaile) { message.warning("请保存催款节点"); return false; } } this.setState({ loading: true, }); let api = this.props.userDetaile ? this.state.isSubmit == 1 ? "/api/admin/newOrder/submitOrder" : "/api/admin/newOrder/updateServiceOrderNew" : "/api/admin/newOrder/createOrder"; const { selectSales, other, channelid, channelname, userType } = this.state let datas = { uid: this.state.autoId,//用户id orderType: this.state.orderType,//订单类型 salesType: selectSales,//销售类型 userType: userType,//客户所属类型 }; if (selectSales == "3") { //传渠道编号 other里面传渠道名称 datas = Object.assign(datas, { channelId: channelid, other: channelname, }) } else if (selectSales == "4" || selectSales == "5") { //3,4要传描述 datas = Object.assign(datas, { other: other, }) } $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: !this.props.userDetaile ? datas : { orderNo: this.state.orderNo, //订单编号 totalAmount: this.state.totalAmount, //总金额 firstAmount: this.state.firstAmount, //首付 isSubmit: this.state.isSubmit, //保存草稿还是提交 signDate: this.state.signDate, //签单日期 contacts: this.state.contacts, //企业负责人 contactMobile: this.state.contactMobile, //负责人联系方式 legalPerson: this.state.legalPerson, //企业法人 legalPersonTel: this.state.legalPersonTel, //企业法人联系电话 approval: this.state.approval, //特批状态 orderRemarks: this.state.orderRemarks, //订单备注 contractPictureUrl: theorgCodeUrl.length ? theorgCodeUrl : "", agreementUrl: theReplenishUrl.length ? theReplenishUrl : "", serviceContent: contentUrl.length ? contentUrl : "", orderDep: this.state.organizationSearch, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("保存成功!"); this.handleOk(); if (this.state.autoId) { this.loadData(); } } else { message.warning(data.error[0].message); } }.bind(this) ); }, //订单作废 examOks() { this.setState({ loading: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/deleteOrderNew", data: { orderNo: this.state.orderNo, //订单编号 }, success: function (data) { if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { message.success("操作成功~"); this.setState({ visible: false, loading: false, }); this.props.closeDesc(false); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //订单详情修改 xiangqingClick(e) { e.preventDefault(); this.setState({ loading: true, }); if (this.state.approval == 2 || this.state.approval == 3) { message.warning("特批状态不正确"); this.setState({ loading: false, }); return; } $.ajax({ url: globalConfig.context + this.state.isSubmit == 1 ? "/api/admin/newOrder/submitOrder" : "/api/admin/newOrder/updateServiceOrderNew", method: "post", data: { orderNo: this.state.orderNo, //订单编号 totalAmount: this.state.totalAmount, //总金额 firstAmount: this.state.firstAmount, //首付 isSubmit: this.state.isSubmit, //保存草稿还是提交 signDate: this.state.selTime, //签单日期 contacts: this.state.contacts, //企业负责人 contactMobile: this.state.contactMobile, //负责人联系方式 legalPerson: this.state.legalPerson, //企业法人 legalPersonTel: this.state.legalPersonTel, //企业法人联系电话 approval: this.state.approval, //特批状态 orderRemarks: this.state.orderRemarks, //订单备注 }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("保存成功!"); this.loaduser(); } else { message.warning(data.error[0].message); } }.bind(this) ); }, not() { }, //查看基本详情基本信息 loaduser(record) { this.setState({ closable: false, disabledView: "none", }); this.state.orderList = []; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail", data: { orderNo: record ? record.orderNo : this.props.datauser.orderNo, }, success: function (data) { let thisData = data.data; if (!thisData) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thisData = {}; } // if (thisData.approval == 2) { // thisData.approval = "特批通过"; // } else if (thisData.approval == 3) { // thisData.approval = "特批驳回"; // } this.setState({ id: thisData.id, kehuId: thisData.buyerId, orderNo: thisData.orderNo, //订单编号 orderType: thisData.orderType, //订单类型 firstAmount: thisData.firstAmount, //首付金额 totalAmount: thisData.totalAmount, //总金额 settlementAmount: thisData.settlementAmount, //结算金额 liquidationStatus: thisData.liquidationStatus, //清算状态 processStatus: thisData.processStatus, //流程状态 approval: thisData.approval, //特批状态 orderRemarks: thisData.orderRemarks, //订单备注 contractNo: thisData.contractNo, //合同编号 contacts: thisData.contacts, //联系人 contactMobile: thisData.contactMobile, //联系人电话 legalPerson: thisData.legalPerson, //法人 legalPersonTel: thisData.legalPersonTel, //法人电话 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" ) : [], //图片地址 signDate: thisData.signDate, //签单时间 userName: thisData.userName, //客户名称 salesmanName: thisData.salesmanName, //营销员名称 salesmanMobile: thisData.salesmanMobile, //营销员电话 oldSalesmanName: thisData.oldSalesmanName, //营销员名称 oldSalesmanMobile: thisData.oldSalesmanMobile, //营销员电话 financeName: thisData.financeName, //财务名称 financeMobile: thisData.financeMobile, //财务电话 nowFinanceMobile: thisData.nowFinanceMobile, nowFinance: thisData.nowFinance, // approval: // thisData.approval == 0 // ? thisData.approval.toString() // : thisData.approval, organizationSearch: thisData.orderDep, depName: thisData.depName, status: thisData.status, outsource: thisData.outsource, deleteSign: thisData.deleteSign, orderUid: thisData.uid, userType: thisData.userType, updatas: { salesType: thisData.salesType,//销售类型 userType: thisData.userType,//客户所属类型 other: thisData.other,//3渠道名 4,5描述 }, channelName: thisData.salesType == "3" ? thisData.other : "",//销售类型为渠道的时候给编辑出的渠道名称赋值 }); // 判断状态 if (this.state.processStatus === 0) { this.setState({ closable: true, disabledView: "inline-block", }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //节点列表 jiedian(orderNos) { this.setState({ loadData: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/selectOrderDun", data: { orderNo: orderNos, }, success: function (data) { let theArr = []; let thisData = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.length; i++) { thisData = data.data[i]; theArr.push({ key: i, dunSubject: thisData.dunSubject ? thisData.dunSubject.toString() : "", //催款科目 id: thisData.id, //节点Id money: thisData.money, //催款金额 dunStatus: thisData.dunStatus, //催款状态 orderNo: thisData.orderNo, }); } this.setState({ contactList: theArr, }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //查看催款节点 jiedianNew(orderNos) { this.setState({ loadData: true, }); $.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: parseFloat(totalCui), }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //催款节点保存 contactSave(record) { for (let i = 0; i < this.state.contactList.length; i++) { if (moneyVerify(this.state.contactList[i].money)) { return; } } this.setState({ loading: true, }); $.ajax({ url: globalConfig.context + "/api/admin/newOrder/createOrderDun", method: "post", data: { orderNo: this.state.orderNo, orderDun: JSON.stringify(this.state.contactList), }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("保存成功!"); this.jiedian(record.orderNo); } else { message.warning(data.error[0].message); } }.bind(this) ); }, //催款节点保存 contactSaveNew(record) { if (record.dunType == 0) { if (!record.customizeTimes) { message.warning("请输入自定义时间"); return; } else if (!record.customizeName) { message.warning("请输入自定义科目"); return; } } if (record.boStatus == "false") { record.boStatus = false; } else if (record.boStatus == "true") { record.boStatus = true; } if (!this.state.yearFlag) { if (!record.effectiveCount && !record.dunTypeCustom) { message.warning("请选择服务年限"); return; } } else { record.effectiveCount = ""; } if (record.money == "") { message.warning("请填写金额"); return; } if (record.boStatus) { if ( typeof +record.money == "number" && +record.money >= 0 && +record.money <= 1 ) { record.appropriationRatio = record.money; } else { message.warning("金额比例填写错误,比例范围0~1"); return; } } if (!record.dunType && record.dunType != 0) { message.warning("请选择对应科目"); return; } if (record.dunType != 1) { record.waitDay = ""; } this.setState({ loading: true, }); if (record.boStatus) { $.ajax({ url: globalConfig.context + "/api/admin/newOrderDun/createDun", method: "post", data: { orderNo: record.orderNo, tid: record.tid, projectType: record.sort, dunType: record.dunType, appropriationRatio: record.appropriationRatio, waitDay: record.waitDay, effectiveCount: record.effectiveCount, customizeTimes: record.dunType == 0 ? record.customizeTimes : undefined, customizeName: record.dunType == 0 ? record.customizeName : undefined, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("保存成功!"); this.setState({ cuiFlag: false, boFlag: false, addFlag: false, }); this.jiedianNew(record.orderNo); } else { message.warning(data.error[0].message); } }.bind(this) ); } else { $.ajax({ url: globalConfig.context + "/api/admin/newOrderDun/createDun", method: "post", data: { orderNo: record.orderNo, tid: record.tid, projectType: record.sort, dunType: record.dunType, money: record.money, waitDay: record.waitDay, effectiveCount: record.effectiveCount, customizeTimes: record.dunType == 0 ? record.customizeTimes : undefined, customizeName: record.dunType == 0 ? record.customizeName : undefined, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("保存成功!"); this.setState({ cuiFlag: false, boFlag: false, addFlag: false, }); this.jiedianNew(record.orderNo); } else { message.warning(data.error[0].message); } }.bind(this) ); } }, //点击新增催款节点 addcontact() { this.state.contactList.push({ key: this.state.contactList.length, money: "", dunSubject: undefined, orderNo: this.state.orderNo, dunTarget: this.state.kehuId, }); this.setState({ contactList: this.state.contactList, }); }, //点击新增催款节点 addcontactNew() { this.state.contactListNew.push({ key: this.state.contactListNew.length, money: "", dunSubject: undefined, orderNo: this.state.orderNo, dunTarget: this.state.kehuId, }); this.setState({ contactListNew: this.state.contactListNew, cuiFlag: true, }); }, //删除收款节点 confirmDelet(index) { this.state.contactList.splice(index, 1); this.setState({ contactList: this.state.contactList, }); this.contactSave(); }, //删除收款节点 confirmDeletNew(index) { if (index.id) { this.state.contactListNew.splice(index.id, 1); this.setState({ contactListNew: this.state.contactListNew, cuiFlag: false, addFlag: false, boFlag: false, }); $.ajax({ url: globalConfig.context + "/api/admin/newOrderDun/deleteDun", method: "post", data: { id: index.id, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("删除成功!"); this.setState({ cuiFlag: false, }); this.jiedianNew(this.state.orderNo); } else { message.warning(data.error[0].message); } }.bind(this) ); } else { this.state.contactListNew.splice(index.key, 1); this.setState({ contactListNew: this.state.contactListNew, cuiFlag: false, addFlag: false, boFlag: false, }); } }, // handleOk() { this.setState({ visible: false, mark: false, }); this.props.closeDesc(false, true); }, // handleCancel() { if (this.state.orderType == undefined) { return false; } if (!this.state.autoId) { return false; } this.setState({ visible: false, mark: false, }); this.props.closeDesc(false); }, // handleCancelclose() { this.setState( { visible: false, mark: false, cuiFlag: false, addFlag: false, boFlag: false, isJilu: false, }, () => { this.setState({ activeKey: "1", }); } ); this.props.closeDesc(false); this.reset(); }, //点击签单 handleCancels() { this.setState({ isSubmit: 1, }); }, //点击保存 handleCancelq() { this.setState({ isSubmit: 0, }); }, //删除 delectRow(record) { this.setState({ loading: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/deleteOrderTask", data: { id: record.id, }, }).done( function (data) { if (!data.error.length) { message.success("删除成功!"); this.setState({ loading: false, }); this.jiedian(this.state.orderNo); this.jiedianNew(this.state.orderNo); // this.loaduser(); this.loadData(); } else { message.warning(data.error[0].message); } }.bind(this) ); }, // nextCancel(type) { this.setState( { editProVisible: false, changeVisible: false, projectOperationVisible: false, editProjectOperationVisible: false,// vipVisible: false, gid: "", dataInfor: {}, addProjectType: undefined, isVip: undefined, isIso: undefined, commodityQuantity: undefined, histYear: [], yearSum: undefined, serviceLife: [], serviceYear: undefined, isEdit: false, // 可编辑 }, () => { this.loadData(); this.proList(); } ); }, // rizhi() { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: "/api/admin/newOrder/selectOrderLog", data: { orderNo: this.props.datauser.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, }); }, // callback(key) { this.setState({ activeKey: key, }); if (key === "1") { this.jiedian(this.props.datauser.orderNo); this.jiedianNew(this.props.datauser.orderNo); this.loaduser(); // this.loaduser(); } if (key === "3") { this.getChangeData(); } if (key === "2" || key === "3") { let url = window.location.href.substring(7); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/orderChangeDetails", data: { orderNo: this.props.datauser.orderNo, }, success: function (data) { if (data.data && data.data.length) { let thisdata = data.data[data.data.length - 1]; if ( thisdata.status === 0 || (thisdata.processState == 0 && thisdata.status != 5) ) { this.setState({ changeId: thisdata.id, typeChange: thisdata.type, totalAmount: thisdata.totalAmount, settlementAmount: thisdata.settlementAmount, changeAmount: thisdata.changeAmount, remarksC: thisdata.remarks, startRemarks: thisdata.zxsRemarks, isCaoGao: true, arrears: thisdata.arrears, changeFlag: true, createTimes: thisdata.createTimes, voucherUrl: thisdata.voucherUrl ? splitUrl( thisdata.voucherUrl, ",", globalConfig.avatarHost + "/upload", url ) : [], processState: thisdata.processState, status: thisdata.status, }); this.proList(); this.cuiList(); let e = thisdata.type; if (e == 1) { this.setState({ hetongFlag: false, listFlag: false, listCuiFlag: false, tuiKuanFlag: false, displayList: false, }); } else if (e == 2) { this.setState({ hetongFlag: true, listFlag: false, listCuiFlag: false, tuiKuanFlag: true, displayList: false, }); } else if (e == 3) { this.setState({ listFlag: false, hetongFlag: false, listCuiFlag: false, tuiKuanFlag: false, displayList: true, }); } else if (e == 4) { this.setState({ listFlag: false, listCuiFlag: false, hetongFlag: false, tuiKuanFlag: true, displayList: false, }); } else if (e == 5) { this.setState({ listFlag: false, listCuiFlag: false, hetongFlag: true, tuiKuanFlag: true, displayList: false, }); } else { this.setState({ listFlag: true, hetongFlag: true, listCuiFlag: true, tuiKuanFlag: false, displayList: false, }); } } else { this.setState({ listFlag: false, hetongFlag: false, listCuiFlag: false, tuiKuanFlag: false, displayList: false, // 置空 changeId: undefined, isCaoGao: false, }); } } else { this.setState({ isCaoGao: false, }); } }.bind(this), }); } }, // cuiList(id) { this.setState({ loadData: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/selectChangeDun", data: { id: id || this.state.changeId, }, success: function (data) { this.setState({ cuiDataSource: data.data, }); if (data.data && data.data.length) { if (id) { this.setState({ listCuiFlag: true, }); } this.setState({ cuiDataSource: data.data, }); this.setState({ loadData: false, }); } else if (data.error && data.error.length) { message.warning(data.error[0].message); this.setState({ loadData: false, }); } }.bind(this), }); }, // proList(id) { this.setState({ loadData: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/selectChangeTask", data: { id: id || this.state.changeId, }, success: function (data) { if (data.data && data.data.length) { if (id) { this.setState({ listFlag: true, }); } data.data.forEach((item, index) => { item.key = index; }); this.setState({ proDataSource: data.data, }); this.setState({ loadData: false, }); } else if (data.error && data.error.length) { // message.warning(data.error[0].message); this.setState({ loadData: false, }); } }.bind(this), }); }, // logList(id) { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", async: false, crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/orderChangeLogList", data: { changeId: id, }, success: function (data) { if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); this.setState({ loading: false, }); } } else { this.setState({ logData: data.data, loading: false, }); } }.bind(this), }); }, getOrgCodeUrl(e) { this.setState({ orgCodeUrl: e }); }, getReplenishUrl(e) { this.setState({ replenishUrl: e }); }, getContentUrl(e) { this.setState({ contentUrl: e }); }, getVoucherUrl(e) { this.setState({ voucherUrl: e }); }, //加载(自动补全) supervisor(e, state) { //客户名称与服务名称自动补全 let api = state ? "/api/admin/customer/getCustomerByName" : "/api/admin/order/getBusinessProjectByName"; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: state ? { name: e, type: this.state.userType, } : { businessName: e, }, success: function (data) { let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } this.setState({ states: state, customerArr: thedata, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // 渠道查询 selectChannel(e) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/selectChannelUserList", data: { name: e, }, success: function (data) { let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } this.setState({ channelArr: thedata, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, supervisorCui(e) { //客户名称与服务名称自动补全 let api = "/api/admin/order/getBusinessProjectByName"; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: { businessName: e, }, success: function (data) { let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } this.setState({ customerCuiArr: thedata, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //上级主管输入框失去焦点是判断客户是否存在 selectAuto(value) { const newData = this.state.proDataSource let kid = []; let fwList = this.state.customerArr; fwList.map(function (item) { if (value == item.bname) { kid = item; } }); if (kid.type == "1") { this.setState({ displayFees: "block", }); } else { this.setState({ displayFees: "none", }); } //0通用 1专利 2软著 3审计 4双软 5高新 6商标 this.setState({ commodityName: value, gid: kid.id, addProjectType: kid.type, isIso: value.indexOf("贯标") !== -1, // 是否为贯标项目 //commodityPrice:kid.price==0?kid.price.toString():kid.price, commodityFirstPayment: kid.firstPayment == 0 ? kid.firstPayment.toString() : kid.firstPayment, isVip: kid.cSort,//暂时判断等于6的时候会员 commodityQuantity: kid.cSort == 6 ? 1 : undefined,//服务数量 histYear: [], }); if (newData && newData.length > 0 && kid.cSort == 6) { let llist = [] for (var i = 0; i < newData.length; i++) { if (newData[i].commodityId == kid.id) { llist.push(newData[i].serviceYear) } } this.setState({ histYear: llist }) for (var i = newData.length - 1; i >= 0; i--) { if (newData[i].commodityId == kid.id) { this.setState({ commodityPrice: newData[i].commodityPrice, // 实签价格 main: "0", // 是否为主要项目 yearSum: newData[i].yearSum.toString(), // 会员总服务年限 serviceLife: !newData[i].serviceLife ? [] : JSON.parse(newData[i].serviceLife), // 会员服务年限 contractTerm: !newData[i].contractTerm ? [] : JSON.parse(newData[i].contractTerm), // 合同期 taskComment: newData[i].taskComment, // 项目说明 // isEdit: true, // 不可编辑 isEdit: true, // 同一会员项目有且只有一条时可编辑 其他情况不可编辑 cPeriod: !newData[i].contractTerm ? false : true, //合同期 }) return } else { this.setState({ commodityPrice: undefined, main: undefined, yearSum: undefined, serviceLife: [], contractTerm: [], taskComment: undefined, isEdit: false, // 可编辑 cPeriod: false, }) } } } }, selectAutoCui(value) { let kid = []; let fwList = this.state.customerCuiArr; fwList.map(function (item) { if (value == item.bname) { kid = item; } }); this.setState({ commodityNameCui: value, cid: kid.id, //commodityPrice:kid.price==0?kid.price.toString():kid.price, commodityFirstPayment: kid.firstPayment == 0 ? kid.firstPayment.toString() : kid.firstPayment, }); }, //客户 selectAutoCUT(value) { let autoIds; let fwList = this.state.customerArr; fwList.map(function (item) { if (value == item.name) { autoIds = item.id; } }); this.setState({ customerName: value, autoId: autoIds, }); }, goSelect(value) { let channelid; let fwList = this.state.channelArr; fwList.map(function (item) { if (value == item.name) { channelid = item.id; } }); this.setState({ channelname: value, channelid: channelid, }); }, //服务值改变时请求客户名称 httpChange(e) { this.state.gid = ""; if (e.length >= 1) { this.supervisor(e, false); } this.setState({ commodityName: e, }); }, httpChangeCui(e) { if (e.length >= 1) { this.supervisorCui(e, false); } this.setState({ commodityNameCui: e, }); }, //客户名称自动补全 customerChange(e) { if (this.state.userType) { this.state.autoId = ""; if (e.length >= 2) { this.supervisor(e, true); } this.setState({ customerName: e, }); } else { this.setState({ customerName: "", }); message.warning("客户所属类型必须指定"); } }, //渠道名称自动补全 channelChange(e) { this.setState({ channelName: e }) if (e.length >= 2) { this.selectChannel(e); } }, //点击添加项目明细 addDetailed() { const { dataSource = [] } = this.state this.setState({ projectOperationVisible: true, newData: dataSource, }); }, //点击添加会员项目明细 addVip() { const { dataSource = [] } = this.state this.setState({ vipVisible: true, newData: dataSource, }); }, // 可展开颜色不同 addRowColor(record) { if (!!record.splitList && record.splitList.length > 0) { return 'light' } else if (!!record.list && record.list.length > 0) { return 'light' } else { return 'dark' } }, //点击项目详情 tableRowClick(record) { const { dataSource = [] } = this.state this.setState({ // projectOperationVisible: true, editProjectOperationVisible: true, dataInfor: record, newData: dataSource, }); }, //签单时间选择 selTime(e, index) { this.setState({ entryTime: e, signDate: e, selTime: index, }); }, //退单操作 //点击退单 tuikuan() { this.setState({ lookVisible: true, contractUrl: [], applicationUrl: [], reason: "", }); }, //关闭退单 noCancel() { this.setState({ lookVisible: false, }); }, //点击确认退单 tuidanOk() { let contractUrls = []; let applicationUrls = []; if (this.state.contractUrl.length) { let picArr = []; this.state.contractUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); contractUrls = picArr.join(","); } if (this.state.applicationUrl.length) { let picArr = []; this.state.applicationUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); applicationUrls = picArr.join(","); } $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/addOrderRefund", data: { orderNo: this.state.orderNo, //订单编号 contractUrl: contractUrls.length ? contractUrls : "", //终止合同 applicationUrl: applicationUrls.length ? applicationUrls : "", //退单申请表 reason: this.state.reason, //退单原因 }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("退单成功!"); this.noCancel(); this.handleCancelclose(); } else { message.warning(data.error[0].message); } }.bind(this) ); }, //开单选择订单类型骚操作 orderTypeFn(e) { if (e == 0) { this.setState({ bussStats: true, orderType: e, }); this.category(); } else { this.setState({ contractType: undefined, bussStats: false, orderType: e, }); } }, //品类数据获取 category() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/Varieties/getSuperList", data: {}, success: function (data) { let thedata = data.data; let theArr = []; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } else { thedata.map(function (item, index) { theArr.push({ key: index, name: item.cname, id: item.id, }); }); } this.setState({ contractType: undefined, categoryArr: theArr, }); }.bind(this), }); }, //变更申请 changeApply() { if ( this.state.typeChange == undefined || (this.state.typeChange == "" && this.state.typeChange != 0) ) { message.warning("请选择变更类型"); return false; } if ( this.state.typeChange == 0 || this.state.typeChange == 1 || this.state.typeChange == 3 ) { if (this.state.settlementAmount < this.state.changeAmount) { message.warning("退款金额大于已收款金额"); return; } } if (this.state.processStatus != 5 && this.state.processStatus != 6) { message.warning("当前订单流程不能发起变更!"); return false; } if (this.state.changeAmount === "") { message.warning("申请退款金额不能为空!"); return false; } if (this.state.remarksC == "") { message.warning("请正确填写变更原因"); return false; } if (this.state.startRemarks == "") { message.warning("请正确填写备注信息"); return false; } let theorgCodeUrl = []; if (this.state.voucherUrl.length) { let picArr = []; this.state.voucherUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); theorgCodeUrl = picArr.join(","); } this.setState({ loading: true, }); if (this.state.typeChange == 0) { $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/addOrderChange", data: { orderNo: this.state.orderNo, //订单编号 processState: 1, status: 1, startRemarks: this.state.startRemarks, remarks: this.state.remarksC, voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "", totalAmount: this.state.totalAmount, settlementAmount: this.state.settlementAmount, changeAmount: this.state.changeAmount, applicant: this.state.salesmanName, depName: this.state.depName, type: this.state.typeChange, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("发起变更成功"); this.handleCancelclose(); } else { message.warning(data.error[0].message); this.setState({ loading: false, }); } }.bind(this) ); } else { $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/addOrderChange", data: { orderNo: this.state.orderNo, //订单编号 processState: 0, status: 0, startRemarks: this.state.startRemarks, remarks: this.state.remarksC, voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "", totalAmount: this.state.totalAmount, settlementAmount: this.state.settlementAmount, changeAmount: this.state.changeAmount, applicant: this.state.salesmanName, depName: this.state.depName, type: this.state.typeChange, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("发起变更草稿"); this.setState( { isCaoGao: true, loading: false, }, () => { this.callback("2"); } ); } else { message.warning(data.error[0].message); } }.bind(this) ); } }, reset() { this.setState({ startRemarks: "", remarksC: "", voucherUrl: [], totalAmount: undefined, settlementAmount: undefined, changeAmount: "0", applicant: undefined, depNameChange: undefined, typeChange: undefined, displayFees: "none", officialCost: "", costReduction: "", }); }, componentWillReceiveProps(nextProps) { //props改变时触发 this.state.visible = nextProps.showDesc; this.state.signBillVisible = nextProps.signBillVisible; if (this.state.signBillVisible) { this.loaduser(nextProps.uid); this.assistList(nextProps.uid); this.orderServiceList(nextProps.uid); // this.publicByOrder(nextProps.uid); } if (nextProps.userDetaile && nextProps.showDesc) { this.loaduser(nextProps.datauser); this.assistList(nextProps.datauser); this.orderServiceList(nextProps.datauser); // this.publicByOrder(nextProps.datauser); this.jiedian(nextProps.datauser.orderNo); this.jiedianNew(nextProps.datauser.orderNo); this.loadData(nextProps.datauser); this.getChangeData(nextProps.datauser); } else { this.setState({ orderType: undefined, customerName: "", autoId: "", customerArr: [], contractType: undefined, bussStats: false, userType: undefined, channelName: "", channelid: "", channelArr: [], selectSales: undefined, }); } }, //查看变更记录 getChangeData(record) { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/orderChangeDetails", data: { orderNo: record ? record.orderNo : this.props.datauser.orderNo, }, success: function (data) { this.setState({ loading: false, }); let url = window.location.href.substring(7); if (data.data && data.data.length) { let thisdata = data.data[data.data.length - 1]; thisdata.typeChange = thisdata.type; thisdata.remarksC = thisdata.remarks; thisdata.startRemarks = thisdata.zxsRemarks; thisdata.voucherUrl = thisdata.voucherUrl ? splitUrl( thisdata.voucherUrl, ",", globalConfig.avatarHost + "/upload", url ) : []; this.proList(thisdata.id); this.cuiList(thisdata.id); this.logList(thisdata.id); this.setState({ //判断是否有合同变更记录 isJilu: true, detailChange: thisdata, }); } }.bind(this), }); }, showConfirm(fn, record) { confirm({ title: "确定删除此项目吗?", content: ( <span style={{ color: "red" }}> 删除后会将该项目下的所有催款节点自动清除!!! </span> ), onOk() { fn(record); }, onCancel() { }, }); }, viewConfirm(fn, record) { confirm({ title: "确定删除此服务记录吗?", // content: ( // <span style={{ color: "red" }}> // 删除后会将该项目下的所有催款节点自动清除!!! // </span> // ), onOk() { fn(record); }, onCancel() { }, }); }, changeAddPro() { // this.getpatentTypeList(); this.setState({ changeVisible: true, newData: this.state.proDataSource, // gid: "", // customerArr: [], // commodityName: "", // commodityQuantity: "", // commodityId: "", // taskComment: "", // main: undefined, // commodityPrice: "", // displayFees: "none", // officialCost: "", // costReduction: "", }); }, changeProSubmit() { if (this.state.gid == undefined || !this.state.gid) { message.warning("服务名称不匹配!"); return } let reg = /^([0]|[1-9][0-9]*)$/; if ( !this.state.commodityQuantity || !reg.test(this.state.commodityQuantity) ) { message.warning("请输入正确商品数量!"); return } if (this.state.displayFees === 'block') { if (this.state.patentType === "" && !this.state.patentTransfer) { message.warning("请选择专利类型!"); return } if (this.state.officialCost === '') { message.warning("请选择官费!"); return } if (this.state.costReduction === "" && (this.state.patentType === 0 || this.state.patentType === 2) && this.state.officialCost === 1) { message.warning("请选择费减!"); return } } if (isNaN(parseFloat(this.state.commodityPrice))) { message.warning("请输入正确的金额!"); return; } if (this.state.addProjectType == "3") {// 3审计 if (this.state.serviceLife.length === 0) { message.warning("请选择服务年限!"); return } if (this.state.serviceLife.length != this.state.commodityQuantity) { message.warning("服务数量与服务年限不符!"); return } } if (!this.state.main) { message.warning("请选择是否为主要项目!"); return } if (this.state.addProjectType === 5) {// 5高新 if (!this.state.declarationBatch) { message.warning("请选择企业要求申报批次!"); return } if (!this.state.serviceYear) { message.warning("请选择申报年份!"); return } } if (this.state.isVip == 6) {//会员 if (this.state.yearSum === undefined) { message.warning("请选择会员总服务年限!"); return } if (this.state.serviceLife.length === 0) { message.warning("请添加会员服务年限!"); return } if (this.state.serviceLife.length != this.state.yearSum) { message.warning("会员服务年限与总年限不符合!"); return } if (this.state.serviceYear === undefined) { message.warning("请选择本次派单年份!"); return } if (this.state.contractTerm.length === 0) { message.warning("请填写合同期!"); return } } this.setState({ loading: true, }); let type = 0; if (this.state.typeChange == 4 || this.state.typeChange == 5) { type = 1; } let infor = { commodityId: this.state.gid, //商品ID orderNo: this.props.datauser.orderNo, //订单编号 commodityName: this.state.commodityName, //商品名称 commodityQuantity: this.state.commodityQuantity, //商品数量 commodityPrice: this.state.commodityPrice, //签单总价 taskComment: this.state.taskComment, //服务说明 main: this.state.main, //是否为主要项目 cid: this.state.changeId, //变更ID type, } if (this.state.displayFees === 'block') { infor.officialCost = this.state.officialCost //是否有官费 infor.costReduction = (this.state.patentType === 0 || this.state.patentType === 2) ? (this.state.officialCost === 1 ? this.state.costReduction : 0) : 0//是否有费减 infor.patentType = this.state.patentType //专利类型 } if (this.state.isIso) { infor.ifCertificationFee = this.state.ifCertificationFee || undefined;//是否包含认证费用 } if (this.state.addProjectType == "3") {//审计 infor.serviceLife = JSON.stringify(this.state.serviceLife) //服务年限 } if (this.state.addProjectType == "5") {//高新 infor.declarationBatch = this.state.declarationBatch || 1//申报批次 infor.serviceYear = this.state.serviceYear //申报年份 } if (this.state.isVip == 6) {//会员 infor.yearSum = this.state.yearSum //会员总服务年限 infor.serviceLife = JSON.stringify(this.state.serviceLife) //会员服务年限 infor.serviceYear = this.state.serviceYear //本次派单年份 infor.contractTerm = JSON.stringify(this.state.contractTerm)//合同期 } $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/addChangeTask", data: infor, success: function (data) { let theArr = []; if (data.error && data.error.length) { message.warning(data.error[0].message); } else { message.success("保存成功"); this.nextCancel(); this.proList(); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, changeDeletePro(record) { this.setState({ loading: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderChange/updateChangeTask", data: { id: record.id, type: 3, tid: record.tid, splitStatus: record.splitStatus, }, success: function (data) { let theArr = []; if (data.error && data.error.length) { message.warning(data.error[0].message); } else { message.success("删除成功"); this.proList(); this.cuiList(); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //点击新增变更催款节点 changeAddCui() { this.state.cuiDataSource.push({ key: this.state.cuiDataSource.length, money: "", dunSubject: undefined, orderNo: this.state.orderNo, dunTarget: this.state.kehuId, }); this.setState({ cuiDataSource: this.state.cuiDataSource, cuiFlag: true, }); }, //删除变更收款节点 changeDeleteCui(index) { if (index.id) { this.state.cuiDataSource.splice(index.id, 1); this.setState({ contactListNew: this.state.cuiDataSource, cuiFlag: false, addFlag: false, boFlag: false, }); $.ajax({ url: globalConfig.context + "/api/admin/orderChange/updateChangeDun", method: "post", data: { id: index.id, type: 3, tid: index.tid, did: index.did, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("删除成功!"); this.setState({ cuiFlag: false, }); this.cuiList(); this.proList(); } else { message.warning(data.error[0].message); } }.bind(this) ); } else { this.state.cuiDataSource.splice(index.key, 1); this.setState({ cuiDataSource: this.state.cuiDataSource, cuiFlag: false, addFlag: false, boFlag: false, }); } }, changeSaveCui(record) { if (record.dunType == 0) { if (!record.customizeTimes) { message.warning("请输入自定义时间"); return; } else if (!record.customizeName) { message.warning("请输入自定义科目"); return; } } if (record.boStatus == "false") { record.boStatus = false; } else if (record.boStatus == "true") { record.boStatus = true; } if (!this.state.yearFlag) { if (!record.effectiveCount) { message.warning("请选择服务年限"); return; } } else { record.effectiveCount = ""; } if (isNaN(parseInt(record.money)) && !record.boStatus) { message.warning("请填写金额"); return; } else if (isNaN(parseInt(record.money)) && record.boStatus) { message.warning("请填写比例"); return; } if (record.boStatus) { if ( typeof +record.money == "number" && +record.money >= 0 && +record.money <= 1 ) { record.appropriationRatio = record.money; } else { message.warning("金额比例填写错误,比例范围0~1"); return; } } if (!record.dunType && record.dunType != 0) { message.warning("请选择对应科目"); return; } if (record.dunType != 1) { record.waitDay = ""; } this.setState({ loading: true, }); if (record.boStatus) { $.ajax({ url: globalConfig.context + "/api/admin/orderChange/addChangeDun", method: "post", data: { orderNo: record.orderNo, ctid: record.ctid, projectType: record.sort, dunType: record.dunType, appropriationRatio: record.appropriationRatio, waitDay: record.waitDay, effectiveCount: record.effectiveCount, cid: this.state.changeId, //变更ID customizeTimes: record.dunType == 0 ? record.customizeTimes : undefined, customizeName: record.dunType == 0 ? record.customizeName : undefined, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("保存成功!"); this.setState({ cuiFlag: false, boFlag: false, addFlag: false, }); this.cuiList(); } else { message.warning(data.error[0].message); } }.bind(this) ); } else { $.ajax({ url: globalConfig.context + "/api/admin/orderChange/addChangeDun", method: "post", data: { orderNo: record.orderNo, ctid: record.ctid, projectType: record.sort, dunType: record.dunType, money: record.money, waitDay: record.waitDay, effectiveCount: record.effectiveCount, cid: this.state.changeId, //变更ID customizeTimes: record.dunType == 0 ? record.customizeTimes : undefined, customizeName: record.dunType == 0 ? record.customizeName : undefined, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("保存成功!"); this.setState({ cuiFlag: false, boFlag: false, addFlag: false, }); this.cuiList(); } else { message.warning(data.error[0].message); } }.bind(this) ); } }, submitChange() { if ( this.state.typeChange == undefined || (this.state.typeChange == "" && this.state.typeChange != 0) ) { message.warning("请选择变更类型"); return false; } if ( this.state.typeChange == 0 || this.state.typeChange == 1 || this.state.typeChange == 3 ) { if (this.state.settlementAmount < this.state.changeAmount) { message.warning("退款金额大于已收款金额"); return; } } if (this.state.processStatus != 5 && this.state.processStatus != 6) { message.warning("当前订单流程不能发起变更!"); return false; } if (this.state.changeAmount === "") { message.warning("申请退款金额不能为空!"); return false; } if (this.state.remarksC == "") { message.warning("请正确填写变更原因"); return false; } if (this.state.startRemarks == "") { message.warning("请正确填写备注信息"); return false; } let theorgCodeUrl = []; if (this.state.voucherUrl.length) { let picArr = []; this.state.voucherUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); theorgCodeUrl = picArr.join(","); } this.setState({ loading: true, }); $.ajax({ url: globalConfig.context + "/api/admin/orderChange/updateOrderChange", method: "post", data: { id: this.state.changeId, changeType: 0, orderNo: this.state.orderNo, //订单编号 processState: 0, startRemarks: this.state.startRemarks, remarks: this.state.remarksC, voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "", totalAmount: this.state.totalAmount, settlementAmount: this.state.settlementAmount, changeAmount: this.state.changeAmount, applicant: this.state.salesmanName, depName: this.state.depName, type: this.state.typeChange, }, }).done( function (data) { if (!data.error.length) { this.setState({ loading: false, }); message.success("发起变更成功"); this.handleCancelclose(); } else { message.warning(data.error[0].message); this.setState({ loading: false, }); } }.bind(this) ); }, editCui(record) { this.setState({ editCuiVisible: true, editCuiMoney: record.appropriationRatio ? record.appropriationRatio : record.money, appropriationRatio: record.appropriationRatio, editCuiTid: record.tid, editCuiDid: record.did, editCuiId: record.id, }); }, editPro(record) { this.setState({ editProVisible: true, dataInfor: record, newData: this.state.proDataSource, }); // this.setState({ // editProVisible: true, // editSplitStatus: record.splitStatus, // editProMoney: record.commodityPrice, // editProCommodityQuantity: record.commodityQuantity, // editProTid: record.tid, // editProId: record.id, // }); }, submitEditCui(type) { if (isNaN(parseFloat(this.state.editCuiMoney))) { if (type === 1) { message.warn("请输入比例"); } else { message.warn("请输入金额"); } return; } this.setState({ loading: true, }); let data = { id: this.state.editCuiId, type: this.state.editCuiTid ? 2 : 1, tid: this.state.editCuiTid, }; if (type === 1) { data.appropriationRatio = this.state.editCuiMoney; } else { data.money = this.state.editCuiMoney; } $.ajax({ url: globalConfig.context + "/api/admin/orderChange/updateChangeDun", method: "post", data, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("修改成功!"); this.cuiList(); this.proList(); this.setState({ editCuiVisible: false, }); } else { message.warning(data.error[0].message); } }.bind(this) ); }, submitEditPro() { this.setState({ loading: true, }); $.ajax({ url: globalConfig.context + "/api/admin/orderChange/updateChangeTask", method: "post", data: { id: this.state.editProId, type: this.state.editProTid ? 2 : 1, commodityPrice: this.state.editProMoney, commodityQuantity: this.state.editProCommodityQuantity, tid: this.state.editProTid, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("修改成功!"); this.cuiList(); this.proList(); this.setState({ editProVisible: false, }); } else { message.warning(data.error[0].message); } }.bind(this) ); }, 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, }); }, downImgCont() { let num = 0; for (let i = 0; i < this.state.contentUrl.length; i++) { if (this.state.contentUrl[i].url == this.state.previewImage) { num = i; } } if (num == this.state.replenishUrl.length - 1) { return message.warning("已经是最后一张了哦"); } this.state.previewImage = this.state.contentUrl[num + 1].url; this.setState({ previewImage: this.state.previewImage, rotateDeg: 0, }); }, upImgCont() { let num = 0; for (let i = 0; i < this.state.contentUrl.length; i++) { if (this.state.contentUrl[i].url == this.state.previewImage) { num = i; } } if (num == 0) { return message.warning("已经是第一张了哦"); } this.state.previewImage = this.state.contentUrl[num - 1].url; this.setState({ previewImage: this.state.previewImage, rotateDeg: 0, }); }, rotateCont() { let rotateDeg = this.state.rotateDeg + 90; this.setState({ rotateDeg, }); }, showConfirmChange(fn, record) { confirm({ title: "确定取消本次变更吗?", content: ( <span style={{ color: "red" }}>取消后本次变更将作废!!!</span> ), onOk() { fn(); }, onCancel() { }, }); }, deleteChange() { this.setState({ loading: true, }); $.ajax({ url: globalConfig.context + "/api/admin/orderChange/cancelOrderChange", method: "post", data: { id: this.state.changeId, status: this.state.status, processState: this.state.processState, orderNo: this.state.orderNo, }, }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { message.success("取消成功!"); this.handleCancelclose(); } else { message.warning(data.error[0].message); } }.bind(this) ); }, // 新增协单人员 submitOrder() { if (!this.state.coor) { message.warning("请选择协单人员"); return; } this.setState({ loading: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/addAssist", data: { orderNo: this.state.orderNo, aid: this.state.coor, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { this.setState({ loading: false, coor: '', dataSourceView: [], coorVisible: "none", }); this.assistList(); message.success("添加成功"); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // // 删除协单人员 // onClosable(id) { // $.ajax({ // method: "post", // dataType: "json", // crossDomain: false, // url: globalConfig.context + "/api/admin/newOrder/deleteAssist", // data: { // id: id, // }, // success: function (data) { // if (!data.error.length) { // message.warning(data.error[0].message); // } else { // message.success("删除成功"); // } // }.bind(this), // }).always( // function () { // this.setState({ // loading: false, // }); // }.bind(this) // ); // }, // 新增上门服务数据 submitView() { if (!this.state.dateView) { message.warning("请选择上门日期"); return; } else if (!this.state.contentView) { message.warning("请填写服务内容"); return; } this.setState({ loading: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/addOrderService", data: { orderNo: this.state.orderNo, serviceTimes: this.state.dateView, content: this.state.contentView, remarks: this.state.remarksView, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { this.setState({ loading: false, modalView: false, viewKey: this.state.viewKey + 1, dateView: '', contentView: '', remarksView: '', contentViewLength: 0, contentViewLength1: 0, }); message.success("添加成功"); this.orderServiceList(); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //获取上门人员 assistList(record) { this.state.orderList = []; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/assistList", data: { orderNo: record ? record.orderNo : this.props.datauser.orderNo, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { this.setState({ personnel: data.data, }); // message.success("添加成功"); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // 上门服务列表 orderServiceList(record) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/orderServiceList", data: { orderNo: record ? record.orderNo : this.props.datauser.orderNo, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { this.setState({ dataView: data.data, }); // message.success("添加成功"); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // 删除上门服务列表 delectView(record) { $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/deleteOrderService", data: { id: record.id, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { // this.setState({ // publicView: data.data, // }); this.orderServiceList(); message.success("删除成功"); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // 上门查看 publicByOrder() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/release/publicByOrder", data: { orderNo: this.state.orderNo, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { this.setState({ publicView: data.data, }); // message.success("添加成功"); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // 获取动态数据名称 handleSearch(value) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/listAdminByName", data: { adminName: value, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { this.setState({ dataSourceView: data.data, }); // message.success("添加成功"); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // onSelectView(v, o) { this.setState({ coor: v, }); }, // handleClose(removedTag) { let serviceLife = this.state.serviceLife.filter(tag => { return tag !== removedTag }); this.setState({ serviceLife, serviceYear: undefined }); }, render() { const expandedRowRender = (e) => { const data = e.list; if (e.cSort != 6) { let columns = []; if (data instanceof Array && data.length) { columns = [ { title: "变更状态", dataIndex: "type", key: "type", render: (text, record) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <span> <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> {/* {record.splitStatus == 1 ? ( <Tag color="#108ee9" // onClick={e => { // e.stopPropagation(); // this.showRes(record); // }} > 父项目 </Tag> ) : ( "" )} {record.splitStatus == 2 ? ( <Tag color="#108ee9" // onClick={e => { // e.stopPropagation(); // this.showRes(record); // }} > 子项目 </Tag> ) : ( "" )} */} </span> ); }, }, { 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", width: 50, }, { title: "金额(万元)", dataIndex: "commodityPrice", key: "commodityPrice", width: 50, render: (text, record) => { if (record.splitStatus == 2) { return "/"; } else { return text; } }, }, { title: "主要项目", dataIndex: "main", key: "main", width: 50, render: (text) => { return text ? "是" : "否"; }, }, { title: "项目负责人", dataIndex: "receiverName", key: "receiverName", }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", render: (text) => { return ( <Tooltip title={text}> <div style={{ width: 100, overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis", }} >{text}</div> </Tooltip> ) }, }, { title: "操作", dataIndex: "ABC", key: "ABC", render: (text, record) => { return ( <div> <Button onClick={(e) => { e.stopPropagation(); this.showConfirm(this.changeDeletePro, record); }} disabled={this.state.listFlag} style={{ display: this.state.displayList ? "none" : "block", }} > 删除 </Button> </div> ); }, }, ]; return ( <Table columns={columns} scroll={{ x: "max-content", y: 0 }} dataSource={data} pagination={false} onRowDoubleClick={this.state.listFlag ? this.not : this.editPro} /> ); } else { columns = []; return ( <p style={{ fontWeight: "bold", color: "red", textAlign: "center" }} > 此项目暂未拆分 </p> ); } } else { let columns = []; if (data instanceof Array && data.length) { columns = [ { title: "变更状态", dataIndex: "type", key: "type", render: (text, record) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <span> <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> {/* {record.splitStatus == 1 ? ( <Tag color="#108ee9" > 父项目 </Tag> ) : ( "" )} {record.splitStatus == 2 ? ( <Tag color="#108ee9" > 子项目 </Tag> ) : ( "" )} */} </span> ); }, }, { title: "负责人", dataIndex: "receiverName", key: "receiverName", }, { title: "负责人电话", dataIndex: "receiverMobile", key: "receiverMobile", }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", render: (text) => { return getProjectName(text); }, }, { title: "本次派单", dataIndex: "serviceYear", key: "serviceYear", }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", render: (text) => { return ( <Tooltip title={text}> <div // style={{ // width: 100, // overflow: "hidden", // whiteSpace: "nowrap", // textOverflow: "ellipsis", // }} >{text}</div> </Tooltip> ) }, }, ]; return ( <Table columns={columns} dataSource={data} pagination={false} /> ); } else { columns = []; return ( <p style={{ fontWeight: "bold", color: "red", textAlign: "center" }} > 暂无派单 </p> ); } } }; const expandedRowRenderDetail = (e) => { const data = e.list; let columns = []; if (data instanceof Array && data.length) { if (e.cSort == 6) { columns = [ { title: "变更状态", dataIndex: "type", key: "type", render: (text, record) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <span> <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> {/* {record.splitStatus == 1 ? ( <Tag color="#108ee9" // onClick={e => { // e.stopPropagation(); // this.showRes(record); // }} > 父项目 </Tag> ) : ( "" )} {record.splitStatus == 2 ? ( <Tag color="#108ee9" // onClick={e => { // e.stopPropagation(); // this.showRes(record); // }} > 子项目 </Tag> ) : ( "" )} */} </span> ); }, }, { title: "负责人", dataIndex: "receiverName", key: "receiverName", }, { title: "负责人电话", dataIndex: "receiverMobile", key: "receiverMobile", }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", render: (text) => { return getProjectName(text); }, }, { title: "本次派单", dataIndex: "serviceYear", key: "serviceYear", }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", render: (text) => { return ( <Tooltip title={text}> <div // style={{ // width: 100, // overflow: "hidden", // whiteSpace: "nowrap", // textOverflow: "ellipsis", // }} >{text}</div> </Tooltip> ) }, }, ]; } else { columns = [ { title: "变更状态", dataIndex: "type", key: "type", render: (text, record) => { let str = ""; let color = ""; if (text == 1) { str = "增"; color = "#87d068"; } else if (text == 2) { str = "改"; color = "#108ee9"; } else if (text == 3) { str = "删"; color = "#f50"; } return ( <span> <Tag color={color} style={{ display: text == 0 ? "none" : "inline-block" }} > {str} </Tag> {/* {record.splitStatus == 1 ? ( <Tag color="#108ee9" // onClick={e => { // e.stopPropagation(); // this.showRes(record); // }} > 父项目 </Tag> ) : ( "" )} {record.splitStatus == 2 ? ( <Tag color="#108ee9" // onClick={e => { // e.stopPropagation(); // this.showRes(record); // }} > 子项目 </Tag> ) : ( "" )} */} </span> ); }, }, { title: "业务项目名称", dataIndex: "commodityName", key: "commodityName", render: (text, record) => { return ( <span>{text}<span style={{ color: "red" }}>{record.patentTypeName}</span></span> ) } }, { title: "项目类别", dataIndex: "cname", key: "cname", }, { title: "项目数量", dataIndex: "commodityQuantity", key: "commodityQuantity", width: 50, }, { title: "金额(万元)", dataIndex: "commodityPrice", key: "commodityPrice", width: 50, render: (text, record) => { if (record.splitStatus == 2) { return "/"; } else { return text; } }, }, { title: "主要项目", dataIndex: "main", key: "main", width: 50, render: (text) => { return text ? "是" : "否"; }, }, { title: "项目负责人", dataIndex: "receiverName", key: "receiverName", }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", render: (text) => { return ( <Tooltip title={text}> <div style={{ width: 100, overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis", }} >{text}</div> </Tooltip> ) }, }, ]; } return ( <Table columns={columns} scroll={{ x: "max-content", y: 0 }} dataSource={data} pagination={false} /> ); } else { columns = []; return ( <p style={{ fontWeight: "bold", color: "red", textAlign: "center" }} > {e.cSort == 6 ? "暂无派单" : "此项目暂未拆分"} </p> ); } }; const expandedRowRenderVip = (e) => { const data = e.splitList; let columns = []; if (data instanceof Array && data.length) { if (e.cSort == 6) { columns = [ { title: "负责人", dataIndex: "receiverName", key: "receiverName", }, { title: "负责人电话", dataIndex: "receiverMobile", key: "receiverMobile", }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", render: (text) => { return getProjectName(text); }, }, { title: "本次派单", dataIndex: "serviceYear", key: "serviceYear", }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", render: (text) => { return ( <Tooltip title={text}> <div style={{ width: 100, overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis", }} >{text}</div> </Tooltip> ) }, }, ]; } else { columns = [ { title: "子项目名称", dataIndex: "taskName", key: "taskName" }, { title: "子项目数量", dataIndex: "commodityQuantity", key: "commodityQuantity" }, { title: "拆分操作人", dataIndex: "splitAname", key: "splitAname" }, { title: "项目负责人", dataIndex: "receiverName", key: "receiverName" }, { title: "拆分时间", dataIndex: "splitTimes", key: "splitTimes" } ] } return ( <Table columns={columns} dataSource={data} pagination={false} /> ); } else { columns = []; return ( <p style={{ fontWeight: "bold", color: "red", textAlign: "center" }} > {e.cSort == 6 ? "暂无派单" : "此项目暂未拆分"} </p> ); } }; const FormItem = Form.Item; const { TabPane } = Tabs; const { TextArea } = Input; const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const contractData = this.state.contractData; const formItemList = [ { label: "企业联系人", content: <span>{this.state.contacts}</span>, }, { label: "客户名称", content: ( <span> {this.state.userName} <EnterpriseNameChange type="journal" style={{ marginLeft: 10 }} enterpriseId={this.state.orderUid} /> </span> ), }, { label: "联系人电话", content: <span>{this.state.contactMobile}</span>, }, { label: "企业法人", content: <span>{this.state.legalPerson}</span>, }, { label: "法人电话", content: <span>{this.state.legalPersonTel}</span>, }, // { // label: "签单金额(万元)", // content: <span>{this.state.totalAmount}</span> // }, // { // label: "首付金额(万元)", // content: <span>{this.state.firstAmount}</span> // }, // { // label: "特批立项", // content: <span>{getApprovedState(this.state.approval)}</span> // }, // { // label: "合同签订时间", // content: <span>{this.state.signDate}</span> // }, // { // label: "订单部门", // content: <span>{this.state.depName}</span> // } ]; let dataSources = this.state.customerArr || []; let cdataSources = this.state.channelArr || []; const cuiDataList = this.state.contactList || []; let departmentArr = this.state.departmentArr || []; let options = this.state.states ? dataSources.map((group) => ( <Select.Option key={group.id} value={group.name}> {group.name} </Select.Option> )) : dataSources.map((group, index) => ( <Select.Option key={index} value={group.bname}> {group.bname} </Select.Option> )); let channeloptions = cdataSources.map((group) => ( <Select.Option key={group.id} value={group.name}> {group.name} </Select.Option> )); let dataSourceView = this.state.dataSourceView ? this.state.dataSourceView.map((group, index) => ( <Select.Option key={index} value={group.aid}> {group.name} </Select.Option> )) : ''; let children = vipYear.map(its => ( <Option key={its}>{its}</Option> )); let { closable, isVip, histYear, isEdit } = this.state; let assistList = this.assistList; const { addPop = "" } = this.props return ( <div> {this.state.resVisible ? ( <ResolutionDetail cancel={this.resCancel} detail={this.state.resRecord} visible={this.state.resVisible} id={this.state.resRecord.orderNo} /> ) : ( "" )} <Modal maskClosable={false} visible={this.state.visible} onOk={this.handleOk} onCancel={this.handleCancelclose} width={!this.props.userDetaile ? "600px" : "1200px"} title={!this.props.userDetaile ? "创建订单" : ""} footer="" className="admin-desc-content" > <Form layout="horizontal" onSubmit={this.handleSubmit} style={{ paddingBottom: "40px" }} > <Spin spinning={this.state.loading}> <div className="clearfix"> { addPop == "add" && <div className="clearfix"> <div className="clearfix"> <FormItem {...formItemLayout} label="订单类型"> <Select placeholder="请选择订单类型" style={{ width: "200px" }} value={this.state.orderType} onChange={(e) => { this.setState({ orderType: e }); }} > {orderTypes.map(function (item) { return ( <Select.Option key={item.value}> {item.key} </Select.Option> ); })} </Select> <span className="mandatory">*</span> </FormItem> </div> <FormItem {...formItemLayout} label="客户所属类型"> <Select placeholder="请选择客户所属类型" style={{ width: "200px" }} value={this.state.userType} onChange={(e) => { this.setState({ userType: e, customerArr: [], autoId: "", customerName: "", selectSales: undefined }); }} > {customerType.map(function (item) { return ( <Select.Option key={item.value}> {item.key} </Select.Option> ); })} </Select> </FormItem> <div className="clearfix"> <FormItem {...formItemLayout} label="客户名称"> <AutoComplete className="certain-category-search" dropdownClassName="certain-category-search-dropdown" dropdownMatchSelectWidth={false} dropdownStyle={{ width: 200 }} size="large" style={{ width: "200px" }} dataSource={options} placeholder="输入名称" value={this.state.customerName} onChange={this.customerChange} filterOption={true} onSelect={this.selectAutoCUT} > <Input /> </AutoComplete> <span className="mandatory">*</span> </FormItem> </div> <FormItem {...formItemLayout} label="销售类型"> <Select placeholder="请选择销售类型" style={{ width: "200px" }} value={this.state.selectSales} onChange={(e) => { this.setState({ selectSales: e, }); }} > {(this.state.userType == "0" ? ssalesType : this.state.userType == "1" ? qsalesType : []).map(function (item) { return ( <Select.Option key={item.value} disabled={item.value == "5"}> {item.key} </Select.Option> ); })} </Select> </FormItem> { (this.state.selectSales == "4" || this.state.selectSales == "5") && <FormItem {...formItemLayout} label="描述"> <TextArea placeholder="请填写描述" style={{ width: 300, height: 80 }} onChange={(e) => { this.setState({ other: e.target.value }) }} /> </FormItem> } { this.state.selectSales == "3" && <div className="clearfix"> <FormItem {...formItemLayout} label="渠道名称"> <AutoComplete className="certain-category-search" dropdownClassName="certain-category-search-dropdown" dropdownMatchSelectWidth={false} dropdownStyle={{ width: 200 }} size="large" style={{ width: "200px" }} dataSource={channeloptions} placeholder="请输入渠道关键字" value={this.state.channelName} onChange={this.channelChange} filterOption={true} onSelect={this.goSelect} > <Input /> </AutoComplete> <span className="mandatory">*</span> </FormItem> </div> } <div className="addSave" style={{ marginTop: "15px" }}> <Button className="cancel" type="primary" // onClick={this.handleCancel} style={{ marginLeft: "150px" }} htmlType="submit" > 开单 </Button> <Button className="cancel" type="ghost" onClick={this.handleCancelclose} style={{ marginLeft: "50px" }} > 取消 </Button> </div> </div> } { addPop == "edit" && <Tabs onChange={this.callback} activeKey={this.state.activeKey} tabBarExtraContent={ <div style={{ fontWeight: "bold", paddingRight: "15px" }} > <OrderItemStatus deleteSign={this.state.deleteSign} /> </div> } > <TabPane tab={"最新订单"} key="1"> <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.orderNo}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="流程状态" > <span> {getProcessStatus(this.state.processStatus)} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="销售类型" > <span> {(["私有客户-", "签单客户-"][this.state.updatas.userType] || " ") + (salesList[this.state.updatas.salesType] || "")} </span> { this.state.processStatus === 0 && <UpdateSales orderNo={this.state.orderNo} updatas={this.state.updatas} onRefresh={ e => { let ups = this.state.updatas ups.salesType = e.salesType if (e.salesType == "3") { ups.channelId = e.channelId ups.other = e.other } else if (e.salesType == "4" || e.salesType == "5") { ups.other = e.other } this.setState({ updatas: ups, userType: ups.userType }) } // this.loaduser.bind(this, {orderNo: this.state.orderNo }) } /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label="结算状态" > <span> {getLiquidationStatus( this.state.liquidationStatus )} </span> </FormItem> {this.state.processStatus === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="特批立项" > <Select placeholder="请选择客户所属类型" style={{ width: "240px" }} value={getApprovedState(this.state.approval)} onChange={(e) => { this.setState({ approval: e }); }} > <Select.Option key={0}>非特批</Select.Option> <Select.Option key={1}>特批</Select.Option> </Select> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 合同签订时间 </span> } > <DatePicker className="signDateRef" style={{ marginTop: "2px", // width: "240px", height: "27px", }} showTime format="YYYY-MM-DD" onOk={() => { }} value={ this.state.signDate ? moment(this.state.signDate) : null } onChange={(data, dataString) => { this.setState({ signDate: dataString }); }} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="订单部门" > <Select placeholder="请选择订单部门" style={{ width: 240 }} value={this.state.organizationSearch} onChange={(e) => { this.setState({ organizationSearch: e }); }} > {departmentArr.map(function (item) { return ( <Select.Option key={item.id}> {item.name} </Select.Option> ); })} </Select> </FormItem> </div> ) : ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="特批立项" > <span> {["非特批", "特批待审核", "特批通过", "特批驳回"][this.state.approval]} {/* {getApprovedState(this.state.approval)} */} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="合同签订时间" > <span>{this.state.signDate}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="订单部门" > <span>{this.state.depName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="是否外包" > <span> {this.state.outsource == 0 ? "否" : "是"} </span> </FormItem> </div> )} </div> <h3 style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10, }} > 收款项目 </h3> {this.state.processStatus === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="签单金额(万元)" > <Input placeholder="签单金额" ref="totalAmountRef" value={this.state.totalAmount} onChange={(e) => { this.setState({ totalAmount: e.target.value, }); }} style={{ width: "240px" }} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="首付金额(万元)" > <Input placeholder="请输入实签首款金额" ref="firstAmountRef" value={this.state.firstAmount} onChange={(e) => { this.setState({ firstAmount: e.target.value, }); }} style={{ width: "240px" }} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="已收款项" > <span> {this.state.settlementAmount + "万元"} </span> {/* {this.state.settlementAmount ? ( <Button type="primary" onClick={this.tuikuan} style={{ float: "right", marginRight: "50px", marginBottom: "15px" }} > 退单 </Button> ) : ( "" )} */} </FormItem> </div> ) : ( <div className="clearfix"> <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> {this.state.settlementAmount + "万元"} </span> {/* {this.state.settlementAmount ? ( <Button type="primary" onClick={this.tuikuan} style={{ float: "right", marginRight: "50px", marginBottom: "15px" }} > 退单 </Button> ) : ( "" )} */} </FormItem> </div> )} <h3 style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10, }} > 联系信息 </h3> {this.state.processStatus == 0 ? ( <div className="clearfix"> <div className="clearfix"> <FormItem className="half-item" style={{ width: "80%" }} labelCol={{ span: 5 }} wrapperCol={{ span: 18 }} label="客户名称" > <span>{this.state.userName}</span> <EnterpriseNameChange type="journal" style={{ marginLeft: 10 }} enterpriseId={this.state.orderUid} /> </FormItem> </div> <FormItem className="half-item" {...formItemLayout} label="企业联系人" > <Input placeholder="请输入联系人" ref="signTotalAmount" value={this.state.contacts} onChange={(e) => { this.setState({ contacts: e.target.value }); }} style={{ width: "240px" }} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="联系人电话" > <Input placeholder="请输入联系人电话" ref="signTotalAmount" value={this.state.contactMobile} onChange={(e) => { this.setState({ contactMobile: e.target.value, }); }} style={{ width: "240px" }} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业法人" > <Input placeholder="请输入法人" ref="signTotalAmount" value={this.state.legalPerson} onChange={(e) => { this.setState({ legalPerson: e.target.value, }); }} style={{ width: "240px" }} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人电话" > <Input placeholder="请输入法人电话" ref="signTotalAmount" value={this.state.legalPersonTel} onChange={(e) => { this.setState({ legalPersonTel: e.target.value, }); }} style={{ width: "240px" }} /> </FormItem> </div> ) : ( <div className="clearfix"> {formItemList.map((data, index) => { return ( <FormItem className="half-item" {...formItemLayout} key={index} label={data.label} > {data.content} </FormItem> ); })} </div> )} <div className="clearfix"> {this.state.processStatus == 0 ? ( <div> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label={ <span> <strong style={{ color: "#f00" }}> * </strong> 合同扫描件 </span> } > <PicturesWall domId={"addService1"} fileList={this.getOrgCodeUrl} pictureUrl={this.state.orgCodeUrl} url="/api/admin/order/uploadOrderImg" sign="" /> <p>图片建议:要清晰。</p> <Button style={{ float: "right", marginRight: "140px", marginTop: "20px", }} onClick={this.getOrderLog} > 查看订单日志 </Button> </FormItem> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label={<span>补充协议</span>} > <PicturesWall domId={"addService2"} fileList={this.getReplenishUrl} pictureUrl={this.state.replenishUrl} url="/api/admin/order/uploadOrderImg" sign="" /> <p>图片建议:要清晰。</p> </FormItem> </div> ) : ( <div> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="合同扫描件" > <div style={{ paddingTop: "10px", paddingBottom: "10px", }} > {this.state.orgCodeUrl && this.state.visible && this.state.activeKey === "1" ? ( <ImgList domId={"addService3"} fileList={this.state.orgCodeUrl} ItemWidth={"96px"} /> ) : ( <div /> )} </div> <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="补充协议" > <div style={{ paddingTop: "10px", paddingBottom: "10px", }} > {this.state.visible && this.state.activeKey === "1" && this.state.replenishUrl ? ( <ImgList domId={"addService4"} 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.rotates} 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> )} </div> {/* 服务内容 */} <div class="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 服务内容 </span> } > <div> {this.state.processStatus == 0 ? <div> <PicturesWall domId={"addServiceContent"} fileList={this.getContentUrl} pictureUrl={this.state.contentUrl} url="/api/admin/order/uploadOrderImg" sign="" /> <p> <span style={{ color: "red", display: "inline-block" }}>(请将合同中的服务内容,截图上传!含服务年限,时间节点等;)</span>图片建议:要清晰。</p> </div> : this.state.contentUrl.length > 0 ? <div> <ImgList domId={"addService13"} fileList={this.state.contentUrl} ItemWidth={"96px"} /> <Modal maskClosable={false} footer={null} width={"50%"} visible={this.state.previewVisibleCont} onCancel={() => { this.setState({ previewVisibleCont: false, rotateDeg: 0, }); }} > <img alt="" style={{ width: "100%", transform: `rotate(${this.state.rotateDeg}deg)`, }} src={this.state.previewImage || ""} /> <Button onClick={this.rotateCont} style={{ position: "relative", left: "50%", transform: "translateX(-50%)", }} > 旋转 </Button> <Button onClick={this.upImgCont} style={{ position: "absolute", left: -81, top: "50%", transform: "translateY(-50%)", }} > 上一张 </Button> <Button onClick={this.downImgCont} style={{ position: "absolute", right: -81, top: "50%", transform: "translateY(-50%)", }} > 下一张 </Button> </Modal> </div> : "暂无附件!"} </div> </FormItem> </div> {/* 服务内容结束 */} <div className="clearfix"> {this.state.processStatus == 0 ? ( <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 16 }} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 订单留言 </span> } > <Input ref="orderRemarksRef" type="textarea" placeholder="请输入订单留言" rows={4} value={this.state.orderRemarks} onChange={(e) => { this.setState({ orderRemarks: e.target.value, }); }} style={{ width: "95%" }} /> <div className="mandatory"> 重要提示:请详细填写合同中包含的服务内容、服务年限、时间节点等 </div> </FormItem> </div> ) : ( <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 16 }} label="订单留言" > <p style={{ width: 500, wordWrap: "break-word" }} > {this.state.orderRemarks} </p> </FormItem> )} </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="订单负责人" > <span>{this.state.salesmanName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="订单负责人电话" > <span>{this.state.salesmanMobile}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="当前财务负责人" > <span>{this.state.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> {/* 新增协单人员 */} <div> <div style={{ marginLeft: "50px", display: 'flex' }}> <div style={{ minWidth: '66px', maxWidth: '100px', fontSize: "12px", color: "red", }} > 协单人员 : </div> <div> {this.state.personnel.length > 0 ? this.state.personnel.map(function (value, key) { return ( <Tag style={{ marginBottom: '5px' }} key={value.id} closable={closable} onClose={(e) => { e.preventDefault(); confirm({ title: "确定删除此人员吗?", // content: ( // <span style={{ color: "red" }}> // 删除后会将该项目下的所有催款节点自动清除!!! // </span> // ), onOk() { $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/deleteAssist", data: { id: value.id, }, success: function (data) { if (data.error.length) { message.warning( data.error[0].message ); } else { message.success("删除成功"); assistList(); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, onCancel() { }, }); }} > {value.name} </Tag> ); }) : "无"} </div> </div> <div style={{ margin: "10px 0 0 50px", display: this.state.disabledView, }} > <Button type="primary" onClick={() => { this.setState({ coorVisible: "block", coor: "", }); }} > 添加协单人员 </Button> {/* 提示 */} <div style={{ color: "red" }}> 注:协单人员为技术人员,陪同营销人员进行订单协作等相关工作,填写后将统计至相关的奖金、提成等 </div> </div> {/*添加协单人员 */} <div style={{ margin: "10px 0 0 50px", display: this.state.coorVisible, }} > <Form onSubmit={this.handleSubmit} ref={this.formRef} > <Form.Item {...formItemLayout} label="" name="coor" hasFeedback > <AutoComplete // autocomplete="off" allowClear dataSource={dataSourceView} style={{ width: 200 }} onSelect={this.onSelectView} onSearch={this.handleSearch} placeholder="请输入名称" /> </Form.Item> </Form> <div style={{ marginLeft: "10px" }}> <Button type="primary" style={{ marginRight: "54px" }} onClick={this.submitOrder} loading={this.state.loading} > 保存 </Button> <Button onClick={() => { this.setState({ coorVisible: "none", }); }} > 取消 </Button> </div> </div> </div> {/* 分界线 */} <div style={{ borderTop: "1px solid #333", margin: "5px 0", }} ></div> {/* 上门服务次数 */} <div> <div style={{ display: "flex", justifyContent: "space-between", }} > <div style={{ marginLeft: "50px", fontSize: "20px" }} > 上门服务次数 </div> <div> <Button type="primary" style={{ marginBottom: 15 }} onClick={() => { this.publicByOrder(); this.setState({ modalRecord: true, }); }} > 查看上门记录 </Button> <Button style={{ marginLeft: 5, display: this.state.disabledView }} type="primary" onClick={() => { this.setState({ modalView: true, dateView: '', contentView: '', remarksView: '', contentViewLength: 0, contentViewLength1: 0, }); }} > 添加上门次数 </Button> </div> </div> {/* 上门服务表格 */} <div className="patent-table" style={{ marginBottom: 10 }} > <Spin spinning={this.state.loading}> <Table columns={this.state.columnsView} scroll={{ x: "max-content", y: 0 }} dataSource={this.state.dataView} pagination={false} // onRowClick={this.tableRowClick} bordered size="small" /> </Spin> </div> {/* 查看上门记录 */} <Modal footer="" title="技术人员上门详细记录" visible={this.state.modalRecord} width="1200px" onCancel={() => { this.setState({ modalRecord: false, }); }} > <Spin spinning={this.state.loading}> <Table columns={this.state.columnsRecord} scroll={{ x: "max-content", y: 0 }} dataSource={this.state.publicView} pagination={false} // onRowClick={this.tableRowClick} bordered size="small" /> </Spin> </Modal> {/* 添加上门次数模态框 */} <Modal footer="" title="新增上门次数" visible={this.state.modalView} key={this.state.viewKey} onCancel={() => { this.setState({ modalView: false, viewKey: this.state.viewKey + 1, }); }} > <Form onSubmit={this.handleSubmit} ref={this.formRef} style={{ marginRight: "120px" }} > <Form.Item {...formItemLayout} label="上门时间" name="date" hasFeedback > <DatePicker placeholder="预计技术员上门服务时间" onChange={(date, dateString) => { this.setState({ dateView: dateString, }); }} /> </Form.Item> <Form.Item {...formItemLayout} label="服务内容" name="remarks" hasFeedback style={{ position: 'relative' }} > <TextArea rows={4} placeholder="需要技术员上门服务内容" onChange={(e) => { this.setState({ contentView: e.target.value, }, () => { if (!this.state.contentView) { this.setState({ contentViewLength: 0, }) } else { this.setState({ contentViewLength: this.state.contentView.length }) } }); }} maxLength={500} > </TextArea> <div style={{ position: 'absolute', right: '20px', bottom: '-5px', zIndex: '10' }}>{this.state.contentViewLength + '/500'}</div> </Form.Item> <Form.Item {...formItemLayout} label="备注" name="remarks" hasFeedback style={{ position: 'relative' }} > <TextArea rows={4} maxLength={500} placeholder="需要技术员注意事项" onChange={(e) => { this.setState({ remarksView: e.target.value, }, () => { if (!this.state.remarksView) { this.setState({ contentViewLength1: 0, }) } else { this.setState({ contentViewLength1: this.state.remarksView.length }) } }); }} /> <div style={{ position: 'absolute', right: '20px', bottom: '-5px', zIndex: '10' }}>{this.state.contentViewLength1 + '/500'}</div> </Form.Item> </Form> <div style={{ display: "flex", justifyContent: "center", }} > <Button onClick={this.submitView} type="primary" loading={this.state.loading} > 提交 </Button> <Button type="dashed" style={{ marginLeft: "15px" }} onClick={() => { this.setState({ modalView: false, viewKey: this.state.viewKey + 1, dateView: '', contentView: '', remarksView: '', contentViewLength: 0, contentViewLength1: 0, }); }} > 取消 </Button> </div> </Modal> </div> <div> <span style={{ marginLeft: "50px", fontSize: "20px" }} > 项目业务 </span> { this.state.processStatus == 0 && <Button type="primary" onClick={this.addDetailed} style={{ float: "right", marginRight: "50px", marginBottom: "15px", }} > 添加项目明细 </Button> } { this.props.datauser.projectType == 1 && this.state.processStatus > 1 && <Button type="primary" onClick={this.addVip} style={{ float: "right", marginRight: "50px", marginBottom: "15px", }} > 添加会员项目 </Button> } </div> <div className="patent-table" style={{ marginBottom: 10 }} > <Spin spinning={this.state.loading}> <Table columns={this.state.columns} dataSource={this.state.dataSource} pagination={this.state.pagination} expandedRowRender={expandedRowRenderVip} rowClassName={this.addRowColor} onRowClick={this.tableRowClick} bordered size="small" /> </Spin> </div> <div style={{ display: cuiDataList.length ? "block" : "none", }} > <span style={{ marginLeft: "50px", fontSize: "20px" }} > 旧催款节点 </span> <Button type="primary" // onClick={this.addcontact} disabled onClick={(e) => { cuiDataList.length ? this.addcontact() : this.addcontactNew(); }} style={{ float: "right", marginRight: "50px", marginBottom: "15px", display: this.state.processStatus == 0 ? "block" : "none", }} > 添加催款节点 </Button> </div> <div className="clearfix" style={{ display: cuiDataList.length ? "block" : "none", }} > <Spin spinning={this.state.loading}> <Form layout="horizontal"> <Table pagination={false} columns={this.state.ContactsLists} dataSource={this.state.contactList} scroll={{ x: "max-content", y: 0 }} bordered size="small" /> <Col span={24} offset={9} style={{ marginTop: "15px" }} ></Col> </Form> </Spin> </div> <div style={{ display: cuiDataList.length ? "none" : "block", }} > <span style={{ marginLeft: "50px", fontSize: "20px", }} > 新催款节点 </span> <span style={{ display: "inline-block", marginLeft: 10, color: "red", }} > 金额总计(万元): {this.state.totalCui} </span> <Button type="primary" disabled={this.state.addFlag ? true : false} // onClick={this.addcontact} onClick={(e) => { this.setState({ addFlag: true }); this.addcontactNew(); }} style={{ float: "right", marginRight: "50px", marginBottom: "15px", display: this.state.processStatus == 0 ? "block" : "none", }} > 添加催款节点 </Button> </div> <div className="clearfix" style={{ display: cuiDataList.length ? "none" : "block", }} > <Spin spinning={this.state.loading}> <Form layout="horizontal"> <Table pagination={false} columns={this.state.ContactsListsNew} dataSource={this.state.contactListNew} scroll={{ x: "max-content", y: 0 }} bordered size="small" /> <Col span={24} offset={9} style={{ marginTop: "15px" }} ></Col> </Form> </Spin> </div> {this.state.processStatus == 0 && <div className="addSave" style={{ marginTop: "15px" }} > <Button className="cancel" type="primary" onClick={this.handleCancels} style={{ marginLeft: "200px" }} htmlType="submit" loading={this.state.loading} > 签单 </Button> <Button className="cancel" type="primary" onClick={this.handleCancelq} style={{ marginLeft: "50px" }} htmlType="submit" loading={this.state.loading} > 保存 </Button> <Popconfirm title="请确认您是否作废此订单??" onConfirm={(e) => { this.examOks() }} okText="确认" cancelText="取消" > <Button className="cancel" type="danger" // onClick={this.examOks} style={{ marginLeft: "50px" }} loading={this.state.loading} > 订单作废 </Button> </Popconfirm> <Button className="cancel" type="ghost" onClick={this.handleCancelclose} style={{ marginLeft: "50px" }} > 取消 </Button> </div> } </div> </TabPane> <TabPane tab="合同变更发起" key="2"> { <div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="客户名称" > <span>{this.state.userName}</span> <EnterpriseNameChange type="journal" style={{ marginLeft: 10 }} enterpriseId={this.state.orderUid} /> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="合同编号" > <span>{this.state.contractNo}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="申请变更部门" > <span>{this.state.depName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="申请人" > <span>{this.state.salesmanName}</span> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="变更类型" > <Select placeholder="选择合同变更类型" style={{ width: 200 }} disabled={this.state.changeFlag} value={this.state.typeChange} onChange={(e) => { this.setState({ typeChange: e, changeFlag: true, }); if (e == 1) { this.setState({ hetongFlag: false, listFlag: false, listCuiFlag: false, tuiKuanFlag: false, displayList: false, }); } else if (e == 2) { this.setState({ hetongFlag: true, listFlag: false, listCuiFlag: false, tuiKuanFlag: true, displayList: false, }); } else if (e == 3) { this.setState({ listFlag: false, hetongFlag: false, listCuiFlag: false, tuiKuanFlag: false, displayList: true, }); } else if (e == 4) { this.setState({ listFlag: false, listCuiFlag: false, hetongFlag: false, tuiKuanFlag: true, displayList: false, }); } else if (e == 5) { this.setState({ listFlag: false, listCuiFlag: false, hetongFlag: true, tuiKuanFlag: true, displayList: false, }); } else { this.setState({ listFlag: true, hetongFlag: true, listCuiFlag: true, tuiKuanFlag: false, displayList: false, }); } }} > <Option value={0}>退单退款</Option> <Option value={1}>项目及金额变更</Option> <Option value={2}>仅项目变更</Option> <Option value={3}>仅金额变更</Option> <Option value={4}>重报</Option> <Option value={5}>赠送</Option> </Select> <Button style={{ marginLeft: 10 }} onClick={(e) => { this.setState({ listFlag: false, hetongFlag: false, listCuiFlag: false, tuiKuanFlag: false, displayList: false, startRemarks: "", remarksC: "", voucherUrl: [], changeAmount: "0", applicant: undefined, depNameChange: undefined, typeChange: undefined, changeFlag: false, }); }} > 重置 </Button> {(this.state.status === 3 || this.state.status == 0) ? ( <Button type="danger" style={{ float: "right", backgroundColor: "red", color: "white", position: "absolute", right: 0, height: 50, borderRadius: 20, zIndex: 100, top: 0, }} onClick={(e) => { e.stopPropagation(); this.showConfirmChange(this.deleteChange); }} > 取消本次变更 </Button> ) : ( "" )} </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="合同额(万元)" > <Input placeholder="请输入合同额" disabled={this.state.hetongFlag} ref="signTotalAmount" value={this.state.totalAmount} onChange={(e) => { this.setState({ totalAmount: e.target.value, }); }} style={{ width: "240px" }} /> </FormItem> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="已收款(万元)" > <span> {this.state.settlementAmount} <span style={{ color: "red" }}> (注:已收款与现实收款不符,请与财务专员联系) </span> </span> </FormItem> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="申请退款(万元)" > <Input placeholder="请输入申请退款" ref="signTotalAmount" disabled={this.state.tuiKuanFlag} value={this.state.changeAmount} onChange={(e) => { this.setState({ changeAmount: e.target.value, }); }} style={{ width: "240px" }} /> </FormItem> </div> <div style={{ display: this.state.isCaoGao ? "block" : "none", }} > <div> <span style={{ marginLeft: "50px", fontSize: "20px", }} > 项目业务 </span> <span style={{ color: "red" }}> (注:项目删除后,此项目的全部节点、全部工时,全部被删除,请谨慎删除!双击可修改对应金额数量!) </span> <Button type="primary" onClick={this.changeAddPro} disabled={this.state.listFlag} style={{ float: "right", marginRight: "50px", marginBottom: "15px", display: this.state.displayList ? "none" : "block", }} > 添加项目明细 </Button> </div> <div className="patent-table" style={{ marginBottom: 10 }} > <Spin spinning={this.state.loading}> <Table columns={this.state.proColumns} dataSource={this.state.proDataSource} expandedRowRender={expandedRowRender} pagination={this.state.pagination} rowClassName={this.addRowColor} // onRowDoubleClick={ // this.state.listFlag // ? this.not // : this.editPro // } bordered size="small" /> </Spin> </div> <div> <span style={{ marginLeft: "50px", fontSize: "20px", }} > 催款节点 </span> <span style={{ color: "red" }}> (注:节点删除后,无论节点是否触发,均会删除,请谨慎删除!双击可修改对应金额!) </span> <Button type="primary" onClick={(e) => { this.changeAddCui(); }} disabled={this.state.listCuiFlag} style={{ float: "right", marginRight: "50px", marginBottom: "15px", display: this.state.displayList ? "none" : "block", }} > 添加催款节点 </Button> </div> <div className="clearfix"> <Spin spinning={this.state.loading}> <Form layout="horizontal"> <Table pagination={false} columns={this.state.changeCuiList} dataSource={this.state.cuiDataSource} scroll={{ x: "max-content", y: 0 }} onRowDoubleClick={ this.state.listCuiFlag ? this.not : this.editCui } bordered size="small" /> <Col span={24} offset={9} style={{ marginTop: "15px" }} ></Col> </Form> </Spin> </div> </div> <div className="clearfix"> <FormItem style={{ height: "auto" }} labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="变更原因" > <TextArea rows={4} placeholder="请输入变更原因" ref="signTotalAmount" style={{ width: "95%" }} value={this.state.remarksC} onChange={(e) => { this.setState({ remarksC: e.target.value, }); }} /> </FormItem> </div> <div className="clearfix"> <FormItem style={{ height: "auto" }} labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="备注" > <TextArea rows={4} placeholder="请输入备注" ref="signTotalAmount" style={{ width: "95%" }} value={this.state.startRemarks} onChange={(e) => { this.setState({ startRemarks: e.target.value, }); }} /> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="变更凭证" > <PicturesWall domId={"addService5"} fileList={this.getVoucherUrl} pictureUrl={this.state.voucherUrl} url="/api/admin/orderChange/uploadFile" sign="order_change_file" /> <p>图片建议:要清晰。</p> </FormItem> </div> <div className="clearfix"> <Button type="primary" style={{ float: "right", marginRight: 40 }} // onClick={this.changeApply} loading={this.state.loading} onClick={(e) => { if (this.state.isCaoGao) { this.submitChange(); } else { this.changeApply(); } }} > {this.state.isCaoGao ? "发起变更申请" : this.state.typeChange == 0 ? "发起变更申请" : "下一步"} </Button> </div> {/* ) : ( "" )} */} </div> } </TabPane> {this.state.isJilu ? ( <TabPane tab={"最近变更记录"} key="3"> <div> <div style={{ borderRadius: "50%", width: 300, height: 300, position: "absolute", top: 230, left: 525, transform: "rotate(-5deg)", zIndex: 1, display: this.state.detailChange.status == 4 ? "block" : "none", }} > <img src={tongguo} style={{ width: "100%" }} /> </div> <div style={{ borderRadius: "50%", width: 300, height: 300, position: "absolute", top: 284, left: 586, transform: "rotate(-5deg)", zIndex: 1, display: this.state.detailChange.status == 5 ? "block" : "none", }} > <img src={quxiao} style={{ width: "63%" }} /> </div> <div className="clearfix"> <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.contractNo}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="时间" > <span> {this.state.detailChange.createTimes} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="申请人" > <span>{this.state.salesmanName}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="当前进度" > <span> {/*当前是进度角色是咨询师以及咨询师经理时使用shenhePeo函数,其他流程正常显示*/} {this.state.detailChange.processState === 2 || this.state.detailChange.processState === 3 ? shenghePeo( this.state.detailChange.processState === 2 ? this.state.detailChange.consultantExamine : this.state.detailChange.managerExamine, this.state.detailChange.processState ) : getProcessStatusNew( this.state.detailChange.processState, this.state.detailChange.status )} </span> </FormItem> {/* <FormItem className="half-item" {...formItemLayout} label="申请变更部门" > <span>{this.state.depName}</span> </FormItem> */} <FormItem {...formItemLayout} className="half-item" label="变更类型" > <span> {getChangeType( this.state.detailChange.typeChange )} </span> </FormItem> </div> {/* <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="变更类型" > <span> {getChangeType( this.state.detailChange.typeChange )} </span> </FormItem> </div> */} <div className="clearfix"> <FormItem {...formItemLayout} className="half-item" label="合同额(万元)" > <span> {this.state.detailChange.totalAmount} </span> </FormItem> <FormItem {...formItemLayout} className="half-item" label="已收款(万元)" > <span> {this.state.detailChange.settlementAmount} </span> </FormItem> </div> <div className="clearfix"> <FormItem {...formItemLayout} className="half-item" label="欠款(万元)" > <span>{this.state.detailChange.arrears}</span> </FormItem> <FormItem {...formItemLayout} className="half-item" label="申请退款(万元)" > <span> {this.state.detailChange.changeAmount} </span> </FormItem> </div> <div className="clearfix"> <FormItem style={{ height: "auto" }} labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="变更原因" > <span>{this.state.detailChange.remarksC}</span> </FormItem> </div> <div className="clearfix"> <FormItem style={{ height: "auto" }} labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="备注" > <span> {this.state.detailChange.startRemarks} </span> </FormItem> </div> {/* ---- */} <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="变更凭证" > <div> {/*<Upload*/} {/* className="demandDetailShow-upload"*/} {/* listType="picture-card"*/} {/* fileList={*/} {/* this.state.detailChange.voucherUrl*/} {/* }*/} {/* onPreview={(file) => {*/} {/* this.setState({*/} {/* previewImage: file.url || file.thumbUrl,*/} {/* previewVisible: true,*/} {/* });*/} {/* }}*/} {/*/>*/} <div style={{ paddingTop: "10px", paddingBottom: "10px", }} > {this.state.detailChange && this.state.detailChange.voucherUrl && this.state.activeKey === "3" && this.state.visible ? ( <ImgList fileList={ this.state.detailChange.voucherUrl } 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>*/} {this.state.status === 3 ? ( <Button type="danger" style={{ float: "right", backgroundColor: "red", color: "white", position: "absolute", right: 0, height: 50, borderRadius: 20, zIndex: 100, top: 0, }} onClick={(e) => { e.stopPropagation(); this.showConfirmChange( this.deleteChange ); }} > 取消本次变更 </Button> ) : ( "" )} </div> </FormItem> </div> <ul style={{ width: "868px", overflow: "hidden", paddingLeft: "90px", paddingTop: "10px", position: "relative", bottom: "20px", fontSize: "12px", color: "rgba(0, 0, 0, 0.65)", }} > {/* <span>操作人:</span> */} {this.state.logData.map((item, index) => { if (item.status == 0) { item.status = "发起"; } else if (item.status == 1) { item.status = "审核中"; } else if (item.status == 2) { item.status = "通过"; } else if (item.status == 3) { item.status = "驳回"; } else if (item.status == 4) { item.status = "完成"; } return ( <li key={index} style={{ width: "100%", height: "auto", wordBreak: "break-all", marginBottom: "10px", }} > {item.aname + ":" + "(" + item.status + ")" + item.remarks} </li> ); })} </ul> {/* 动态展示项目以及催款节点 */} <div> <div> <span style={{ marginLeft: "50px", fontSize: "20px", }} > 项目业务 </span> </div> <div className="patent-table" style={{ marginBottom: 10 }} > <Spin spinning={this.state.loading}> <Table columns={this.state.detailColumns} dataSource={this.state.proDataSource} expandedRowRender={expandedRowRenderDetail} pagination={this.state.pagination} // onRowClick={this.tableRowClick} onRowClick={(record) => { this.setState({ dataInfor: record, infoVisible: true }) }} rowClassName={this.addRowColor} bordered size="small" /> </Spin> </div> <div> <span style={{ marginLeft: "50px", fontSize: "20px", }} > 催款节点 </span> </div> <div className="clearfix"> <Spin spinning={this.state.loading}> <Form layout="horizontal"> <Table pagination={false} columns={this.state.detailContactsLists} dataSource={this.state.cuiDataSource} scroll={{ x: "max-content", y: 0 }} bordered size="small" /> <Col span={24} offset={9} style={{ marginTop: "15px" }} ></Col> </Form> </Spin> </div> </div> </div> </TabPane> ) : ( "" )} </Tabs> } </div> </Spin> </Form> </Modal> { // 添加变更项目 this.state.changeVisible && <NewAddProject type="change" children="list" typeChange={this.state.typeChange} cid={this.state.changeId} readOnly={false} orderNo={this.state.orderNo} visible={this.state.changeVisible} newData={this.state.newData} onCancel={() => [this.nextCancel("change")]} /> } { // 编辑变更项目 this.state.editProVisible && <NewEditProject type="change" children="list" typeChange={this.state.typeChange} cid={this.state.changeId} readOnly={false} orderNo={this.props.datauser.orderNo} visible={this.state.editProVisible} dataInfor={this.state.dataInfor} newData={this.state.newData} onCancel={() => [this.nextCancel("change")]} /> } {this.state.lookVisible ? ( <Modal maskClosable={false} visible={this.state.lookVisible} onOk={this.noCancel} onCancel={this.noCancel} width="800px" title={"退单申请"} footer="" className="admin-desc-content" > <Form layout="horizontal"> <Spin spinning={this.state.loading}> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 16 }} label="终止合同" > <Picture domId={"addService6"} fileList={(e) => { this.setState({ contractUrl: e }); }} pictureUrl={this.state.contractUrl} visible={this.props.visible} data={{ sign: "order_refund_file", url: "/api/admin/newOrder/uploadRefundOrderFile", number: 8, }} /> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 16 }} label="退单申请表" > <Picture domId={"addService7"} fileList={(e) => { this.setState({ applicationUrl: e }); }} pictureUrl={this.state.applicationUrl} visible={this.props.visible} data={{ sign: "order_refund_file", url: "/api/admin/newOrder/uploadRefundOrderFile", number: 8, }} /> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 16 }} label="退单理由" > <Input type="textarea" placeholder="请输入退单理由" rows={4} value={this.state.reason} onChange={(e) => { this.setState({ reason: e.target.value }); }} /> </FormItem> </div> <div className="clearfix"> <Button className="cancel" type="primary" onClick={this.tuidanOk} style={{ marginLeft: "50px" }} htmlType="submit" > 确定退单 </Button> <Button className="cancel" type="ghost" onClick={this.noCancel} style={{ marginLeft: "50px" }} > 取消 </Button> </div> </Spin> </Form> </Modal> ) : ( <div /> )} <Modal maskClosable={false} title={ isNaN(parseFloat(this.state.appropriationRatio)) ? "修改催款节点金额" : "修改催款节点比例" } visible={this.state.editCuiVisible} onOk={() => { this.submitEditCui( isNaN(parseFloat(this.state.appropriationRatio)) ? 0 : 1 ); }} okText={"保存"} width={300} onCancel={(e) => { this.setState({ editCuiVisible: false, appropriationRatio: "", }); }} > <div className="clearfix"> <FormItem labelCol={{ span: 6 }} wrapperCol={{ span: 14 }} label={ isNaN(parseFloat(this.state.appropriationRatio)) ? "催款金额" : "催款比例" } > <Input type="number" placeholder={ isNaN(parseFloat(this.state.appropriationRatio)) ? "请输入金额" : "请输入比例" } rows={4} value={this.state.editCuiMoney} onChange={(e) => { this.setState({ editCuiMoney: e.target.value }); }} /> </FormItem> </div> </Modal> <OrderRiZi dataSourcerizhi={this.state.dataSourcerizhi} closeOrderLog={this.closeOrderLog} visible={this.state.rizhivisible} loading={this.state.loading} /> { // 添加项目 this.state.projectOperationVisible && <NewAddProject readOnly={ this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0 } orderNo={this.props.datauser.orderNo} visible={this.state.projectOperationVisible} newData={this.state.newData} onCancel={this.nextCancel} /> } { // 编辑项目 this.state.editProjectOperationVisible && <NewEditProject readOnly={ this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0 } orderNo={this.props.datauser.orderNo} visible={this.state.editProjectOperationVisible} dataInfor={this.state.dataInfor} newData={this.state.newData} onCancel={this.nextCancel} /> } { // 会员项目添加 this.state.vipVisible && <NewAddProject type="vipAdd" readOnly={ this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0 } orderNo={this.props.datauser.orderNo} visible={this.state.vipVisible} newData={this.state.newData} onCancel={this.nextCancel} /> // <ProjectOperationVip // readOnly={ // this.state.dataInfor && // Object.keys(this.state.dataInfor).length > 0 && // this.state.processStatus !== 0 // } // orderNo={this.props.datauser.orderNo} // visible={this.state.vipVisible} // dataInfor={this.state.dataInfor} // newData={this.state.newData} // onCancel={this.nextCancel} // /> } { // 变更记录详情 this.state.infoVisible && <NewEditProject children="list" type="change" readOnly={ this.state.dataInfor && Object.keys(this.state.dataInfor).length > 0 && this.state.processStatus !== 0 } visible={this.state.infoVisible} dataInfor={this.state.dataInfor} onCancel={() => { this.setState({ infoVisible: false }) }} /> } </div> ); }, }) ); export default Form.create()(NewService);