import React, { Component } from "react";
import {
Button,
Form,
Input,
message,
Spin,
Select,
Tabs,
Table,
Modal,
Tooltip,
} from "antd";
import $ from "jquery/src/ajax";
import { ChooseList } from "../../../manageCenter/order/orderNew/chooseList";
import OrderDetail from "../orderNew/changeComponent/orderDetail";
import OrderRiZi from "@/orderRiZi.jsx";
import { salesList } from "@/dataDic.js";
import {
getProcessStatus,
getLiquidationStatus,
getNewOrderStatus,
ShowModal,
} from "@/tools.js";
const { TabPane } = Tabs;
const FormItem = Form.Item;
const Option = Select.Option;
class OrderList extends Component {
constructor(props) {
super(props);
this.state = {
onelist: [
{
value: "0",
label: "首付待付请",
},
{
value: "1",
label: "尾款待付清",
},
{
value: "2",
label: "已付请",
},
],
twolist: [
{
value: "0",
label: "非特批",
},
{
value: "1",
label: "特批",
},
],
threelist: [
{
value: "0",
label: "10万元以下",
},
{
value: "1",
label: "10万~20万",
},
{
value: "2",
label: "20万~30万",
},
{
value: "3",
label: "30万~40万",
},
{
value: "4",
label: "40万以上",
},
],
columns: [
{
title: "销售类型",
dataIndex: "salesType",
key: "salesType",
render: (text, record) => {
return (
{salesList[text]}
);
},
},
{
title: "合同编号",
dataIndex: "contractNo",
key: "contractNo",
},
{
title: "订单编号",
dataIndex: "orderNo",
key: "orderNo",
},
{
title: "客户名称",
dataIndex: "userName",
key: "userName",
},
{
title: "订单部门",
dataIndex: "depName",
key: "depName",
},
{
title: "下单时间",
dataIndex: "createDate",
key: "createDate",
},
{
title: "合同签订时间",
dataIndex: "signDate",
key: "signDate",
},
{
title: "流程状态",
dataIndex: "processStatus",
key: "processStatus",
render: (text, record) =>
{getProcessStatus(text)}
},
{
title: "签单金额(万元)",
dataIndex: "totalAmount",
key: "totalAmount",
render: (text, record) =>
{text}
},
{
title: "开单金额(万元)",
dataIndex: "invoiceAmount",
key: "invoiceAmount",
render: (text, record) =>
{text}
},
{
title: "已收款(万元)",
dataIndex: "settlementAmount",
key: "settlementAmount",
render: (text, record) =>
{text}
},
{
title: "结算状态",
dataIndex: "liquidationStatus",
key: "liquidationStatus",
render: (text, record) =>
{getLiquidationStatus(text)}
},
{
title: "是否特批",
dataIndex: "approval",
key: "approval",
render: (text, record) =>
{["非特批", "特批", "特批通过"][text]}
},
{
title: "订单状态",
dataIndex: "orderStatus",
key: "orderStatus",
render: (text, record) =>
{getNewOrderStatus(text)}
},
],
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function (page) {
this.loadData(page);
}.bind(this),
showTotal: function (total) {
return "共" + total + "条数据";
},
},
loading: false,
changeList: undefined,
searchValues: {},
dataSource: [],
details: false,
orderData: {},
};
}
changeList(arr) {
const newArr = [];
this.state.columns.forEach((item) => {
arr.forEach((val) => {
if (val === item.title) {
newArr.push(item);
}
});
});
this.setState({
changeList: newArr,
});
}
// 重置
resetAll() {
this.setState(
{
searchValues: JSON.parse(JSON.stringify({})),
selectedRowKeys: [],
},
() => {
this.loadData();
}
);
}
// 列表接口
loadData(pageNo) {
const { searchValues, pagination } = this.state;
this.setState({
loading: true,
});
let prs = this.props.data;
prs.pageNo = pageNo || 1;
prs.pageSize = pagination.pageSize;
let datas = Object.assign(searchValues, prs);
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/statistics/orderList",
data: datas,
success: function (data) {
ShowModal(this);
this.setState({
loading: false,
});
if (data.error && data.error.length === 0) {
if (data.data.list) {
pagination.current = data.data.pageNo;
pagination.total = data.data.totalCount;
if (data.data && data.data.list && !data.data.list.length) {
pagination.current = 0;
pagination.total = 0;
}
this.setState({
dataSource: data.data.list,
pagination: this.state.pagination,
pageNo: data.data.pageNo,
});
} else {
this.setState({
dataSource: data.data,
pagination: false,
});
}
} else {
message.warning(data.error[0].message);
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
}
// 订单详情
xiangqing(orderNos) {
this.setState({
loading: true
})
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
data: {
orderNo: orderNos
},
success: function (data) {
this.setState({
loading: false
})
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
let thisdata = data.data;
this.setState(
{
orderUid: thisdata.uid,
userName: thisdata.userName,
primaryOrderNo: thisdata.primaryOrder,
additionalOrder: thisdata.additionalOrder,
contractNo: thisdata.contractNo,
// arrears: thisdata.arrears,
orderData: thisdata,
isAddition: thisdata.additionalOrder ? true : false,
},
() => {
if (this.state.orderData.deleteSign !== 3) {
this.jiedianNew(this.state.orderNo);
}
}
);
}
}.bind(this)
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
}
//
createTabs(orderNos) {
$.ajax({
url: globalConfig.context + "/api/admin/orderChange/getOrderChange",
method: "get",
data: {
orderNo: orderNos
},
success: (data) => {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else {
this.setState({
tabList: data.data
})
}
}
});
}
// 整行点击
tableRowClick(record) {
this.setState(
{
details: true,
orderNo: record.orderNo
},
() => {
this.xiangqing(record.orderNo)
this.createTabs(record.orderNo)
this.xiangmu(record.orderNo)
}
);
}
//
jiedianNew(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url:
globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
data: {
orderNo: orderNos
},
success: function (data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
} else {
let theArr = [];
let thisData = [];
let arr = data.data || [];
let totalCui = 0;
for (let i = 0; i < arr.length; i++) {
thisData = arr[i];
totalCui += +thisData.money;
theArr.push({
key: i,
dunSubject: thisData.dunSubject
? thisData.dunSubject.toString()
: "", //催款科目
id: thisData.id, //节点Id
money: thisData.money, //催款金额
commodityName: thisData.commodityName,
projectType: thisData.projectType,
dunTypeName: thisData.dunTypeName,
status: thisData.status,
waitDay: thisData.waitDay,
effectiveCount: thisData.effectiveCount,
startDate: thisData.startDate,
dunType: thisData.dunType,
appropriationRatio: thisData.appropriationRatio,
customizeName: thisData.customizeName,
customizeTimes: thisData.customizeTimes,
tid: thisData.tid,
});
}
if (!totalCui) {
totalCui = 0;
}
totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
this.setState({
contactListNew: theArr,
totalCui
});
}
}.bind(this)
}).always(
function () {
this.setState({
loading: false
});
}.bind(this)
);
}
//
closeDesc() {
this.setState({
details: false
})
this.loadData(this.state.pageNo);
}
//查看订单日志
getOrderLog() {
this.setState({
rizhivisible: true,
});
this.rizhi();
}
//
closeOrderLog() {
this.setState({
rizhivisible: false
});
}
// 日志
rizhi() {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: "/api/admin/newOrder/selectOrderLog",
data: {
orderNo: this.state.orderNo,
},
success: function (data) {
let theArr = [];
let thisData = data.data;
if (!thisData.length) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thisData = {};
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
theArr.push({
processName: thisdata.processName,
adminName: thisdata.adminName,
createDate: thisdata.createDate,
remarks: thisdata.remarks
});
}
}
this.setState({
dataSourcerizhi: theArr
});
}.bind(this)
});
}
// 项目列表
xiangmu(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
data: {
orderNo: orderNos
},
success: function (data) {
let theArr = [];
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
thisdata.key = i;
thisdata.sort = thisdata.cSort;
theArr.push(thisdata);
}
}
this.setState({
dataSourceX: theArr
});
}.bind(this)
});
}
componentWillMount() {
this.loadData();
}
render() {
const { searchValues, onelist, twolist, threelist, columns, changeList, details } = this.state;
return (
);
}
}
export default OrderList;