import React from "react";
import {
Button,
Input,
Select,
Spin,
Table,
message,
DatePicker,
Form,
Modal,
Tabs, Tooltip,
} from "antd";
import $ from "jquery/src/ajax";
import moment from "moment";
import ShowModalDiv from "@/showModal.jsx";
import {
getLiquidationStatus,
getjiedian,
getNewOrderStatus,
getProjectStatus,
ShowModal,
} from "@/tools.js";
import "./customer.less";
import { ChooseList } from "./chooseList";
import { getProjectName } from "../../../tools";
import DepartmentList from "../../../common/departmentList";
import Cascaders from "../../../common/cascaders";
const ArrearsList = Form.create()(
React.createClass({
loadData(pageNo) {
this.setState({
visitModul: false,
loading: true,
ispage: pageNo,
modalVisible: false,
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/arrearsDunList",
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
name: this.state.customerName, //名称
orderNo: this.state.orderNo, //订单编号
contractNo: this.state.contractNo,
deps: this.state.departmenttSearch, //订单部门
starTime: this.state.releaseDate[0], //开始时间
endTime: this.state.releaseDate[1], //结束时间
tStarTime: this.state.chufaDate[0], //开始时间
tEndTime: this.state.chufaDate[1], //结束时间
adminName: this.state.adminName,
},
success: function (data) {
ShowModal(this);
let theArr = [];
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
for (let i = 0; i < data.data.list.length; i++) {
let thisdata = data.data.list[i];
let obj = thisdata;
obj.key = i + 1;
theArr.push(obj);
}
this.state.pagination.total = data.data.totalCount;
this.state.pagination.current = data.data.pageNo;
}
if (data.data && data.data.list && !data.data.list.length) {
this.state.pagination.total = 0;
}
this.setState({
dataSource: theArr,
pageNo: pageNo,
pagination: this.state.pagination,
selectedRowKeys: [],
});
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
},
getInitialState() {
return {
releaseDate: [],
chufaDate: [],
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
modalVisible: false,
onChange: function (page) {
this.loadData(page);
}.bind(this),
showTotal: function (total) {
return "共" + total + "条数据";
},
},
columns: [
{
title: "序号",
dataIndex: "key",
key: "key",
},
{
title: "合同编号",
dataIndex: "contractNo",
key: "contractNo",
},
{
title: "订单编号",
dataIndex: "orderNo",
key: "orderNo",
},
{
title: "客户名称",
dataIndex: "userName",
key: "userName",
render: text => {
return (
{text}
)
}
},
{
title: "订单负责人",
dataIndex: "salesmanName",
key: "salesmanName",
},
{
title: "订单部门",
dataIndex: "depName",
key: "depName",
},
{
title: "订单状态",
dataIndex: "orderStatus",
key: "orderStatus",
render: (text) => {
return getNewOrderStatus(text);
},
},
{
title: "项目名称",
dataIndex: "commodityName",
key: "commodityName",
},
{
title: "项目状态",
dataIndex: "projectStatus",
key: "projectStatus",
render: (text) => {
return getProjectName(text);
},
},
{
title: "签单金额(万元)",
dataIndex: "totalAmount",
key: "totalAmount",
},
{
title: "已收款(万元)",
dataIndex: "settlementAmount",
key: "settlementAmount",
},
{
title: "应收款(万元)",
dataIndex: "orderReceivables",
key: "orderReceivables",
},
{
title: "欠款(万元)",
dataIndex: "orderArrears",
key: "orderArrears",
},
{
title: "结算状态",
dataIndex: "liquidationStatus",
key: "liquidationStatus",
render: (text) => {
return getLiquidationStatus(text);
},
},
{
title: "催收科目",
dataIndex: "type",
key: "type",
render: text => {
if (text == 0) {
return "按时触发应收欠款"
}
}
},
{
title: "催款状态",
dataIndex: "dunStatus",
key: "dunStatus",
render: (text) => {
if (text == 0) {
return "未启动";
} else if (text == 1) {
return "催款中";
} else if (text == 2) {
return "已完成";
} else if (text == 3) {
return "已停止";
}
},
},
{
title: "催款启动日期",
dataIndex: "startDate",
key: "startDate",
},
{
title: "下单时间",
dataIndex: "signDate",
key: "signDate",
},
{
title: "移交法务",
dataIndex: "legalTimes",
key: "legalTimes",
},
],
legalColumns: [
{
title: "序号",
dataIndex: "key",
key: "key",
width: 45,
},
{
title: "操作人名称",
dataIndex: "adminName",
key: "adminName",
width: 80,
},
{
title: "客户名称",
dataIndex: "userName",
key: "userName",
width: 140,
},
{
title: "法务时间",
dataIndex: "operationDate",
key: "operationDate",
width: 140,
},
{
title: "详细",
dataIndex: "remarks",
key: "remarks",
width: 140,
},
{
title: "法务类型",
dataIndex: "type",
key: "type",
width: 140,
render: (text, data) => {
let status;
if (data.status == 0) {
status = "否";
} else if (data.status == 1) {
status = "已回款";
} else if (data.status == 2) {
status = "已诉讼";
} else if (data.status == 3) {
status = "已坏账处理";
}
//
if (data.type == 0) {
return "法务催收中";
} else if (data.type == 1) {
return "延期法务";
} else if (data.type == 2) {
return `已完成法务/${status}`;
} else if (data.type == 3) {
return "自动转交";
} else if (data.type == 4) {
return "营销转交";
}
}
},
{
title: "操作时间",
dataIndex: "createDate",
key: "createDate",
width: 140,
},
],
legalDataSource: [],
legalPagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function (page) {
this.linkList(page);
this.setState({
selectedRowKeys: [],
});
}.bind(this),
showTotal: function (total) {
return "共" + total + "条数据";
},
},
dataSource: [],
};
},
//页面加载函数
componentWillMount() {
this.loadData();
},
//搜索
search() {
this.setState({
//signBillVisible:false
});
this.loadData();
},
//导出
exportExec() {
var data = {
name: this.state.customerName ? this.state.customerName : undefined, //客户名称
adminName: this.state.adminName ? this.state.adminName : undefined, //订单负责人
orderNo: this.state.orderNo ? this.state.orderNo : undefined, //订单编号
contractNo: this.state.contractNo ? this.state.contractNo : undefined,
starTime: this.state.releaseDate[0]
? this.state.releaseDate[0]
: undefined,
endTime: this.state.releaseDate[1]
? this.state.releaseDate[1]
: undefined,
tStarTime: this.state.chufaDate[0]
? this.state.chufaDate[0]
: undefined,
tEndTime: this.state.chufaDate[1] ? this.state.chufaDate[1] : undefined,
depId: this.state.departmenttSearch,
pageSize: 9999999,
};
window.location.href =
globalConfig.context +
"/api/admin/newOrder/exportArrearsDunListData?" +
$.param(data);
},
//重置
reset() {
this.state.orderNo = undefined;
this.state.contractNo = undefined;
this.state.customerName = undefined;
this.state.adminName = undefined;
this.state.departmenttSearch = undefined;
this.state.releaseDate[0] = undefined;
this.state.releaseDate[1] = undefined;
this.state.chufaDate[1] = undefined;
this.state.chufaDate[0] = undefined;
this.Cascaders.empty();
this.loadData();
},
changeList(arr) {
const newArr = [];
this.state.columns.forEach(item => {
arr.forEach(val => {
if (val === item.title) {
newArr.push(item);
}
});
});
this.setState({
changeList: newArr
});
},
viewLegal() {
// console.log(this.state.rowkey);
if (this.state.recordt == undefined || this.state.recordt == [] || this.state.rowkey.length == 0) {
message.info("请选择查看的单号")
return
}
this.setState({
modalVisible: true
})
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/lagalAffairs/lagalAffairsLogList",
data: {
pageNo: 1,
pageSize: 10,
orderNo: this.state.recordt
},
success: function (data) {
let theArr = []
if (data.error.length) {
this.setState({
loadLegal: false,
});
message.warning(data.error[0].message);
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
let obj = thisdata;
obj.key = i + 1;
theArr.push(obj);
}
this.setState({
legalDataSource: theArr,
legalPagination: this.state.legalPagination
});
this.state.legalPagination.total = data.data.totalCount;
this.state.legalPagination.current = data.data.pageNo;
}
if (data.data && data.data.list && !data.data.list.length) {
this.state.legalPagination.total = 0;
}
}.bind(this),
}).always(
function () {
this.setState({
loadLegal: false,
});
}.bind(this)
);
},
render() {
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
};
const FormItem = Form.Item;
const { RangePicker } = DatePicker;
const rowSelection = {
selectedRowKeys: this.state.selectedRowKeys,
onChange: (selectedRowKeys, selectedRows) => {
this.setState({
modalVisible: false,
selectedRows: selectedRows.slice(-1),
selectedRowKeys: selectedRowKeys.slice(-1),
}, () => {
this.setState({
rowkey: this.state.selectedRowKeys
})
});
},
onSelect: (recordt) => {
this.setState({
modalVisible: false,
recordt: recordt.orderNo,
});
},
};
const { TabPane } = Tabs;
return (
{ this.setState({ showModal: false }) }} />
欠款催收列表
);
},
})
);
export default ArrearsList;