// 变更--驳回
import React, { Component } from "react";
import {
Form,
Select,
Input,
Button,
message,
Spin,
Tag,
Table,
Col,
Popconfirm,
Modal,
AutoComplete,
DatePicker,
Radio,
Tooltip,
Switch,
} from "antd";
import $ from "jquery/src/ajax";
import moment from "moment";
import ResolutionDetail from "@/resolutionDetail";
import PicturesWall from "./picturesWall";
import Rizhi from "./rizhi";
import {
cuiJieDian,
orderTypes,
customerType,
jiedian,
tepi,
boutique,
vipYear,
getProjectName,
} from "@/dataDic.js";
import { moneyVerify } from "@/tools.js"
import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
import ProjectOperation from "../../../../common/projectOperation";
import NewAddProject from "../../../../common/projectOperation/newAddProject"
import NewEditProject from "../../../../common/projectOperation/newEditProject"
import "./index.less";
const FormItem = Form.Item;
const confirm = Modal.confirm;
const Option = AutoComplete.Option;
const RadioGroup = Radio.Group;
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 }
};
class ChangeApply extends Component {
constructor(props) {
super(props);
this.state = {
data: {},
voucherUrl: [],
newContractUrl: [],
dataSource: [],
cuiDataSource: [],
loading: false,
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 (
{str}
);
},
},
{
title: "项目名称",
dataIndex: "commodityName",
key: "commodityName",
render: (text, record, index) => {
let dataArr = this.state.proDataSource || [];
if (text) {
if (record.ctid) {
return {text + "-" + record.ctid};
} else {
let tid = record.tid;
let ctid = "";
dataArr.forEach((item, index) => {
if (item.tid == tid) {
ctid = item.id;
}
});
return {text + "-" + ctid};
}
}
return (
);
},
},
{
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 {str};
}
}
}
if (this.state.getLoad) {
return (
);
} else {
return (
);
}
},
},
{
title: "催款科目",
dataIndex: "dunTypeName",
key: "dunTypeName",
render: (text, record) => {
if (text) {
return {text};
}
if (this.state.getLoad) {
let arr = record.arr || [];
return (
{record.dunType == 0 ? (
{
record.customizeName = e.target.value;
this.setState({
contactList: this.state.contactList,
});
}}
style={{ width: "120px" }}
/>
) : (
""
)}
);
} else {
return (
);
}
},
},
{
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 {str};
}
return (
{record.dunType == 0 ? (
{
let time = moment(e).valueOf();
let today = Date.parse(new Date());
if (time <= today) {
return true;
}
}}
onChange={(e, t) => {
record.customizeTimes = t;
}}
/>
) : (
)}
);
},
},
{
title: "金额(万元)",
dataIndex: "money",
key: "money",
render: (text, record) => {
if (record.dunTypeName) {
if (record.appropriationRatio) {
let percent = Number(record.appropriationRatio * 100).toFixed(2);
percent += "%";
return {percent}(拨款比例);
} else {
return {text};
}
}
return (
);
// if (this.state.boFlag) {
// return (
//
//
//
//
//
// {
// record.money = e.target.value;
// this.setState({
// contactList: this.state.contactList,
// });
// }}
// style={{ width: "120px" }}
// />
//
//
// );
// } else {
// return (
//
// {
// record.money = e.target.value;
// this.setState({ contactList: this.state.contactList });
// }}
// style={{ width: "120px" }}
// />
//
// );
// }
},
},
{
title: "服务年限",
dataIndex: "startDate",
key: "startDate",
render: (text, record) => {
if (record.dunTypeName) {
return {text};
}
return (
{
record.dunType != 0 ?
:
}
);
},
},
{
title: "催款状态",
dataIndex: "status",
key: "status",
render: (text) => {
return {text == 1 ? "已启动" : "未启动"};
},
},
{
title: "操作",
dataIndex: "dels",
key: "dels",
render: (text, record, index) => {
return (
{
this.changeDeleteCui(record);
}}
okText="删除"
cancelText="不删除"
>
{record.isSave ? (
) : (
""
)}
);
},
},
],
resVisible: false,
proColumns: [
{
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 (
{str}
{/* {record.splitStatus == 1 ? (
父项目
) : (
""
)}
{record.splitStatus == 2 ? (
子项目
) : (
""
)} */}
);
},
},
{
title: "业务项目名称",
dataIndex: "commodityName",
key: "commodityName",
render: (text, record) => {
return {text}{record.patentTypeName}{"-" + record.id}
}
},
{
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 (
{["", "一年", "二年", "三年", "四年", "五年"][text]}
);
}
},
{
title: "年限",
dataIndex: "serviceLife",
key: "serviceLife",
render: (text, record) => {
return (
{!!text && JSON.parse(text).toString()}
);
}
},
{
title: "本次派单",
dataIndex: "serviceYear",
key: "serviceYear",
render: (text, record) => {
return (
{!text ? "" : text}
);
}
},
{
title: "项目说明",
dataIndex: "taskComment",
key: "taskComment",
render: (text) => {
return (
{text}
)
},
},
{
title: "操作",
dataIndex: "ABC",
key: "ABC",
render: (text, record) => {
return (
);
},
},
],
patentTypeList: [],
displayFees: "none",
serviceLife: [],
isVip: undefined,//是否会员
isIso: undefined,//是否贯标
histYear: [],
contractTerm: [],//合同期
isEdit: false,//是否可编辑
addyear: undefined,//
isGive: undefined,//是否赠送
cPeriod: false, // 合同期是否可编辑
isNew: false,
};
this.departmentList = this.departmentList.bind(this);
this.changeApply = this.changeApply.bind(this);
this.getVoucherUrl = this.getVoucherUrl.bind(this);
this.getNewContractUrl = this.getNewContractUrl.bind(this);
this.proList = this.proList.bind(this);
this.cuiList = this.cuiList.bind(this);
this.showConfirm = this.showConfirm.bind(this);
this.showConfirmChange = this.showConfirmChange.bind(this);
this.changeAddPro = this.changeAddPro.bind(this);
this.changeProSubmit = this.changeProSubmit.bind(this);
this.changeDeletePro = this.changeDeletePro.bind(this);
this.changeAddCui = this.changeAddCui.bind(this);
this.changeDeleteCui = this.changeDeleteCui.bind(this);
this.changeSaveCui = this.changeSaveCui.bind(this);
this.submitChange = this.submitChange.bind(this);
this.editCui = this.editCui.bind(this);
this.editPro = this.editPro.bind(this);
this.submitEditCui = this.submitEditCui.bind(this);
this.submitEditPro = this.submitEditPro.bind(this);
this.nextCancel = this.nextCancel.bind(this);
this.customerChange = this.customerChange.bind(this);
this.selectAuto = this.selectAuto.bind(this);
this.supervisor = this.supervisor.bind(this);
this.httpChange = this.httpChange.bind(this);
this.showRes = this.showRes.bind(this);
this.resCancel = this.resCancel.bind(this);
this.deleteChange = this.deleteChange.bind(this);
this.not = this.not.bind(this);
}
componentDidMount() {
this.getpatentTypeList()
}
nextCancel(type) {
this.setState({
editProVisible: false,
addnextVisible: false,
changeVisible: false,
addProjectType: undefined,
isVip: undefined,
isIso: undefined,
commodityQuantity: undefined,
histYear: [],
yearSum: undefined,
serviceLife: [],
serviceYear: undefined,
isEdit: false, // 可编辑
}, () => {
this.proList()
});
}
showConfirm(fn, record) {
confirm({
title: "确定删除此项目吗?",
content: (
删除后会将该项目下的所有催款节点自动清除!!!
),
onOk() {
fn(record);
},
onCancel() { }
});
}
showConfirmChange(fn, record) {
confirm({
title: "确定取消本次变更吗?",
content: (
取消后本次变更将作废!!!
),
onOk() {
fn();
},
onCancel() { }
});
}
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)
});
}
//服务值改变时请求客户名称
httpChange(e) {
this.state.gid = "";
if (e.length >= 1) {
this.supervisor(e, false);
}
this.setState({
commodityName: e
});
}
//客户名称自动补全
customerChange(e) {
if (this.state.customType) {
this.state.autoId = "";
if (e.length >= 2) {
this.supervisor(e, true);
}
this.setState({
customerName: e
});
} else {
this.setState({
customerName: ""
});
message.warning("客户所属类型必须指定");
}
}
//上级主管输入框失去焦点是判断客户是否存在
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",
patentTransfer: kid.patentTransfer,
});
} else {
this.setState({
displayFees: "none",
});
}
this.setState({
commodityName: value,
gid: kid.id,
addProjectType: kid.type,
//commodityPrice:kid.price==0?kid.price.toString():kid.price,
commodityFirstPayment: kid.firstPayment == 0 ? kid.firstPayment.toString() : kid.firstPayment,
isIso: value.indexOf("贯标") !== -1,// 是否为贯标项目
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,
})
}
}
}
}
//加载(自动补全)
supervisor(e, state) {
//客户名称与服务名称自动补全
let api = state
? "/api/admin/customer/getCustomerByName"
: "/api/admin/order/getBusinessProjectByName";
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + api,
data: state
? {
name: e,
type: this.state.customType
}
: {
businessName: e
},
success: function (data) {
let thedata = data.data;
if (!thedata) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thedata = {};
}
this.setState({
states: state,
customerArr: thedata
});
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
}
//变更申请
changeApply() {
if (this.state.data.totalAmount === "") {
message.warning("合同金额不能为空!");
return false;
}
if (this.state.data.firstAmount === "") {
message.warning("首付款金额不能为空!");
return false;
}
if (Number(this.state.data.totalAmount) < Number(this.state.data.firstAmount)) {
message.warning("首付款不能大于合同额!");
return;
}
if (moneyVerify(this.state.data.totalAmount)) {
return false;
}
if (moneyVerify(this.state.data.changeAmount)) {
return false;
}
if (
this.state.data.type == 0 ||
this.state.data.type == 1 ||
this.state.data.type == 3 ||
this.state.data.type == 8
) {
if (Number(this.state.data.settlementAmount) < Number(this.state.data.changeAmount)) {
message.warning("退款金额大于已收款金额");
return;
}
}
if (this.state.data.type == 0) {
let reg1 = /^1[3456789]\d{9}$/
let reg2 = /^0\d{2,3}-?\d{7,8}$/
let reg3 = /[^\u4E00-\u9FA5]/g
if (!this.state.data.managerContacts || reg3.test(this.state.data.managerContacts)) {
message.warning("请正确填写企业总经理姓名");
return false;
}
if (!this.state.data.managerContactMobile) {
message.warning("请正确填写企业总经理联系电话");
return false;
}
if (!reg1.test(this.state.data.managerContactMobile) && !reg2.test(this.state.data.managerContactMobile)) {
message.warning("请正确填写企业总经理联系电话");
return false;
}
if (!this.state.data.contacts || reg3.test(this.state.data.contacts)) {
message.warning("请正确填写企业联系人姓名");
return false;
}
if (!this.state.data.contactMobile) {
message.warning("请正确填写企业联系人联系方式");
return false;
}
if (!reg1.test(this.state.data.contactMobile) && !reg2.test(this.state.data.contactMobile)) {
message.warning("请正确填写企业联系人联系方式");
return false;
}
}
let newContractUrl = [];
if (this.state.newContractUrl.length) {
let cArr = [];
this.state.newContractUrl.map(function (item) {
if (
item.response &&
item.response.data &&
item.response.data.length
) {
cArr.push(item.response.data);
}
});
newContractUrl = cArr.join(",");
}
if (this.state.isNew && newContractUrl.length == 0) {
message.warning("请上传新合同扫描件!");
return
}
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(",");
}
Object.assign(this.state.data, {
id: this.props.orderData.id, //订单编号
changeType: 0,
voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
consultantExamine: [],
managerExamine: [],
contractPictureUrl: this.state.isNew
? newContractUrl : undefined,//合同替换件
});
this.setState({
loading: true
})
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/orderChange/updateOrderChange",
data: this.state.data
}).done(
function (data) {
if (!data.error.length) {
message.success("变更成功!");
this.props.onCancel();
this.setState({
loading: false
});
} else {
message.warning(data.error[0].message);
this.setState({
loading: false
});
}
}.bind(this)
);
}
// componentDidMount() {
// window.setTimeout(() => {
// this.loadDataChange();
// }, 10);
// }
// loadDataChange() {
// console.log(this.props);
// $.ajax({
// method: "get",
// dataType: "json",
// crossDomain: false,
// url: globalConfig.context + "/api/admin/orderChange/orderChangeLogList",
// data: {
// changeId: this.props.data.id
// },
// success: function(data) {
// if (data.error.length || data.data.list == "") {
// if (data.error && data.error.length) {
// message.warning(data.error[0].message);
// }
// } else {
// this.setState({
// dataSource: data.data
// });
// }
// }.bind(this)
// });
// }
// 拆分详细
showRes(record) {
this.setState({
resVisible: true,
resRecord: record
})
}
resCancel() {
this.setState({
resVisible: false
})
}
cuiList(id) {
this.setState({
loading: true,
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/orderChange/selectChangeDun",
data: {
id: id || this.state.data.id
},
success: function (data) {
this.setState({
cuiDataSource: data.data,
loading: false,
});
if (data.data && data.data.length) {
if (id) {
this.setState({
listCuiFlag: true,
});
}
this.setState({
cuiDataSource: data.data,
});
this.setState({
loading: false,
});
} else if (data.error && data.error.length) {
message.warning(data.error[0].message);
this.setState({
loading: false,
});
}
}.bind(this)
});
}
proList(id) {
this.setState({
loading: true
})
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/orderChange/selectChangeTask",
data: {
id: id || this.state.data.id
},
success: function (data) {
this.setState({
loading: false
})
if (data.data && data.data.length) {
if (id) {
this.setState({
listFlag: true
});
}
data.data.forEach(item => {
item.key = item.id
})
this.setState({
proDataSource: data.data
});
this.setState({
loading: false,
});
} else if (data.error && data.error.length) {
// message.warning(data.error[0].message)
this.setState({
loading: false,
});
}
}.bind(this)
});
}
departmentList() {
$.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);
}
} else {
thedata.map(function (item, index) {
theArr.push({
key: index,
name: item.name,
id: item.id
});
});
}
this.setState({
departmentArr: theArr
});
}.bind(this)
});
}
getVoucherUrl(e) {
this.setState({ voucherUrl: e });
}
getNewContractUrl(e) {
this.setState({ newContractUrl: e });
}
changeAddPro() {
this.setState({
newData: this.state.proDataSource,
changeVisible: true,
gid: "",
customerArr: [],
commodityName: "",
commodityQuantity: "",
commodityId: "",
taskComment: "",
main: undefined,
commodityPrice: ""
});
}
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.state.data.orderNo, //订单编号
commodityName: this.state.commodityName, //商品名称
commodityQuantity: this.state.commodityQuantity, //商品数量
commodityPrice: this.state.commodityPrice, //签单总价
taskComment: this.state.taskComment, //服务说明
main: this.state.main, //是否为主要项目
cid: this.state.data.id, //变更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.data.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();
} 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.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 (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.data.id, //变更ID
ustomizeTimes:
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.data.id, //变更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 ||
this.state.typeChange == 8
) {
if (this.state.settlementAmount < this.state.changeAmount) {
message.warning("退款金额大于已收款金额");
return;
}
}
if (this.state.processStatus != 6 || this.state.processStatus != 7) {
message.warning("当前订单流程不能发起变更!");
return false;
}
if (this.state.changeAmount === "") {
message.warning("申请退款金额不能为空!");
return false;
}
if (this.state.remarksC.trim() == "") {
message.warning("请正确填写变更原因");
return false;
}
if (this.state.startRemarks.trim() == "") {
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,
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.proList();
this.cuiList()
this.setState({
editProVisible: false
});
} else {
message.warning(data.error[0].message);
}
}.bind(this)
);
}
componentWillMount() {
this.departmentList();
this.state.data = this.props.orderData;
this.state.data.oldPrice = this.props.orderData.totalAmount;
this.setState({
data: this.state.data,
voucherUrl: this.props.voucherUrl
});
this.proList();
this.cuiList();
let e = this.props.orderData.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 if (e == 6) {
this.setState({
// listFlag: true,
// listCuiFlag: true,
// hetongFlag: true,
// tuiKuanFlag: true,
// displayList: false,
listFlag: false,
listCuiFlag: false,
hetongFlag: false,
tuiKuanFlag: false,
displayList: false,
});
} else if (e == 7) {
this.setState({
listFlag: true,
listCuiFlag: true,
hetongFlag: true,
tuiKuanFlag: true,
displayList: false,
isNew: true,
});
} else {
this.setState({
listFlag: false,
listCuiFlag: false,
hetongFlag: false,
tuiKuanFlag: false,
displayList: false,
});
}
}
// componentWillReceiveProps(nextProps) {
// this.state.data = nextProps.orderData;
// this.state.data.oldPrice = nextProps.orderData.totalAmount;
// this.setState({
// data: this.state.data,
// voucherUrl: nextProps.voucherUrl
// });
// // this.proList();
// // this.cuiList();
// let e = nextProps.orderData.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
// });
// }
// }
not() {
}
deleteChange() {
this.setState({
loading: true,
});
$.ajax({
url: globalConfig.context + "/api/admin/orderChange/cancelOrderChange",
method: "post",
data: {
id: this.state.data.id,
status: this.state.data.status,
processState: this.state.data.processState,
orderNo: this.state.data.orderNo
},
}).done(
function (data) {
this.setState({
loading: false,
});
if (!data.error.length) {
message.success("取消成功!");
this.props.onCancel()
} else {
message.warning(data.error[0].message);
}
}.bind(this)
);
}
handleClose(removedTag) {
let serviceLife = this.state.serviceLife.filter(tag => { return tag !== removedTag });
this.setState({ serviceLife, serviceYear: undefined });
}
// 可展开颜色不同
addRowColor(record) {
if (!!record.list && record.list.length > 0) {
return 'light'
} else {
return 'dark'
}
}
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 (
{str}
{/* {record.splitStatus == 1 ? (
{
// e.stopPropagation();
// this.showRes(record);
// }}
>
父项目
) : (
""
)}
{record.splitStatus == 2 ? (
{
// e.stopPropagation();
// this.showRes(record);
// }}
>
子项目
) : (
""
)} */}
);
},
},
{
title: "业务项目名称",
dataIndex: "commodityName",
key: "commodityName",
render: (text, record) => {
return {text}{record.patentTypeName}{"-" + record.id}
}
},
{
title: "项目类别",
dataIndex: "cname",
key: "cname",
},
{
title: "项目数量",
dataIndex: "commodityQuantity",
key: "commodityQuantity",
},
{
title: "金额(万元)",
dataIndex: "commodityPrice",
key: "commodityPrice",
render: (text, record) => {
if (record.splitStatus == 2) {
return "/";
} else {
return text;
}
},
},
{
title: "主要项目",
dataIndex: "main",
key: "main",
render: (text) => {
return text ? "是" : "否";
},
},
{
title: "项目负责人",
dataIndex: "receiverName",
key: "receiverName",
},
{
title: "总年限",
dataIndex: "yearSum",
key: "yearSum",
render: (text, record) => {
return (
{["", "一年", "二年", "三年", "四年", "五年"][text]}
);
}
},
{
title: "年限",
dataIndex: "serviceLife",
key: "serviceLife",
render: (text, record) => {
return (
{!!text && JSON.parse(text).toString()}
);
}
},
{
title: "本次派单",
dataIndex: "serviceYear",
key: "serviceYear",
render: (text, record) => {
return (
{!text ? "" : text}
);
}
},
{
title: "项目说明",
dataIndex: "taskComment",
key: "taskComment",
render: (text) => {
return (
{text}
)
},
},
{
title: "操作",
dataIndex: "ABC",
key: "ABC",
render: (text, record) => {
return (
);
},
},
];
return (
);
} else {
columns = [];
return (
此项目暂未拆分
);
}
} 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 (
{str}
);
},
},
{
title: "负责人",
dataIndex: "receiverName",
key: "receiverName",
},
{
title: "负责人电话",
dataIndex: "receiverMobile",
key: "receiverMobile",
},
{
title: "项目状态",
dataIndex: "projectStatus",
key: "projectStatus",
render: (text) => {
return text
// return getProjectName(text);
},
},
{
title: "本次派单",
dataIndex: "serviceYear",
key: "serviceYear",
},
{
title: "项目说明",
dataIndex: "taskComment",
key: "taskComment",
render: (text) => {
return (
{text}
)
},
},
];
return (
);
} else {
columns = [];
return (
暂无派单
);
}
}
};
const { TextArea } = Input;
const data = this.state.data;
// let departmentArr = this.state.departmentArr || [];
const dataSources = this.state.customerArr || [];
const cuiDataList = this.state.contactList || [];
let departmentArr = this.state.departmentArr || [];
const options = this.state.states
? dataSources.map(group => (
{group.name}
))
: dataSources.map((group, index) => (
{group.bname}
));
let children = vipYear.map(its => (
));
const { isVip, histYear, isEdit } = this.state
return (
{this.state.resVisible ? (
) : (
""
)}
{data.userName}
{data.contractNo}
{this.state.data.depName}
{/* {
let data = this.state.data;
data.applicant = e.target.value;
this.setState({ data });
}}
style={{ width: "240px" }}
/> */}
{data.applicant}
{(this.state.data.status == 3 || this.state.data.status == 0) ? (
) : (
""
)}
{
let data = this.state.data;
data.totalAmount = e.target.value;
this.setState({ data });
}}
style={{ width: "240px" }}
/>
{
let data = this.state.data;
data.firstAmount = e.target.value;
this.setState({ data });
}}
style={{ width: "240px" }}
/>
{/* {
let data = this.state.data;
data.settlementAmount = e.target.value;
this.setState({ data });
}}
style={{ width: "240px" }}
/> */}
{this.state.data.settlementAmount}
(注:已收款与现实收款不符,请与财务专员联系)
{
let data = this.state.data;
data.changeAmount = e.target.value;
this.setState({ data });
}}
style={{ width: "240px" }}
/>
{/* 退单退款 */}
{this.state.data.type == 0 &&
}
项目业务
(注:项目删除后,此项目的全部节点、全部工时,全部被删除,请谨慎删除!)
催款节点
(注:节点删除后,无论节点是否触发,均会删除,请谨慎删除!双击可修改对应金额!)
{/* 备注 */}
{ this.setState({ isNew: e }) }} />,
注:原上传合同为空或作废时,需上传替换合同
{
this.state.isNew &&
}
{/*
{this.state.dataSource.map((item, index) => (
- {`${item.aname}: ${item.remarks}`}
))}
*/}
{
// 新需求 除湖南和内蒙古外 不让其他省操作
(adminData.province == "21" || adminData.province == "11") &&
}
{
// 变更项目任务编辑
this.state.editProVisible &&
[this.nextCancel("change")]}
/>
// {
// this.setState({
// editProVisible: false,
// });
// this.proList()
// }}
// />
}
{/* {
this.setState({
editProVisible: false,
});
}}
>
{
this.setState({ editProMoney: e.target.value });
}}
/>
{
this.setState({ editProCommodityQuantity: e.target.value });
}}
/>
*/}
{
this.submitEditCui(isNaN(parseFloat(this.state.appropriationRatio)) ? 0 : 1);
}}
okText={"保存"}
width={300}
onCancel={(e) => {
this.setState({
editCuiVisible: false,
appropriationRatio: ''
});
}}
>
{
this.setState({ editCuiMoney: e.target.value });
}}
/>
{
this.state.changeVisible &&
[this.nextCancel("change")]}
/>
}
{
this.state.addYears &&
{
if (!this.state.addyear) {
message.warn("请选择年份!")
return
}
if (this.state.isGive == undefined) {
message.warn("请选择是否赠送!")
return
}
let slist = this.state.serviceLife
if (this.state.isGive == 0) {
slist.push(this.state.addyear)
} else if (this.state.isGive == 1) {
let newYear = this.state.addyear + "(赠)"
slist.push(newYear)
}
this.setState({
serviceLife: slist,
addYears: false
})
}}
onCancel={() => {
this.setState({
addYears: false
})
}}
>
{
this.setState({
isGive: e.target.value
})
}}
value={this.state.isGive}
>
非赠送
赠送
}
);
}
}
export default ChangeApply;