|
@@ -54,171 +54,374 @@ const ProjecDataStatistics = Form.create()(React.createClass({
|
|
|
dataIndex: "salesType",
|
|
|
key: "salesType",
|
|
|
render: (text, record) => {
|
|
|
- return (
|
|
|
- <Tooltip
|
|
|
- title={salesList[text] + ((text == 3 || text == 4 || text == 5) ? (!record.other ? "" : "," + record.other) : "")}
|
|
|
- >
|
|
|
+ const obj = {
|
|
|
+ children: <Tooltip title={salesList[text] + ((text == 3 || text == 4 || text == 5) ? (!record.other ? "" : "," + record.other) : "")}>
|
|
|
<span>
|
|
|
{salesList[text]}
|
|
|
</span>
|
|
|
- </Tooltip>
|
|
|
- );
|
|
|
+ </Tooltip>,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
title: "订单类型",
|
|
|
dataIndex: "serviceType",
|
|
|
key: "serviceType",
|
|
|
- render: text => {
|
|
|
- return (
|
|
|
- <div style={{ maxWidth: 200 }}>{text}</div>
|
|
|
- )
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: <div style={{ maxWidth: 200 }}>{text}</div>,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
title: "结算状态",
|
|
|
dataIndex: "liquidationStatus",
|
|
|
key: "liquidationStatus",
|
|
|
- render: (text) => {
|
|
|
- return getLiquidationStatus(text);
|
|
|
- },
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: getLiquidationStatus(text),
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "催款节点",
|
|
|
+ dataIndex: "dunNodeContent",
|
|
|
+ key: "dunNodeContent",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '是否会员',
|
|
|
dataIndex: 'projectType',
|
|
|
key: 'projectType',
|
|
|
- render: text => { return getWhether(text) }
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: getWhether(text),
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '是否大客户',
|
|
|
dataIndex: 'bigCustomer',
|
|
|
key: 'bigCustomer',
|
|
|
- render: text => { return getWhether(text) }
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: getWhether(text),
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "是否特批",
|
|
|
dataIndex: "approval",
|
|
|
key: "approval",
|
|
|
- render: (text) => {
|
|
|
- return getApprovedState(text);
|
|
|
- },
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: getApprovedState(text),
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '签单时间',
|
|
|
dataIndex: 'signTime',
|
|
|
key: 'signTime',
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "派单时间",
|
|
|
dataIndex: "createTime",
|
|
|
key: "createTime",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '公司名称',
|
|
|
dataIndex: 'buyerName',
|
|
|
key: 'buyerName',
|
|
|
- render: text => {
|
|
|
- return (
|
|
|
- <Tooltip title={text}>
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: <Tooltip title={text}>
|
|
|
<div style={{ maxWidth: 200 }}>{text}</div>
|
|
|
- </Tooltip>
|
|
|
- )
|
|
|
+ </Tooltip>,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
title: "合同编号",
|
|
|
dataIndex: "contractNo",
|
|
|
key: "contractNo",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '合同类型',
|
|
|
dataIndex: 'htlx',
|
|
|
key: 'htlx',
|
|
|
- // render: (text) => { return getContractType(text) }
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '省份',
|
|
|
dataIndex: 'province',
|
|
|
key: 'province',
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "派单公司",
|
|
|
dataIndex: "depName",
|
|
|
key: "depName",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '签单金额',
|
|
|
dataIndex: 'totalAmount',
|
|
|
key: 'totalAmount',
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '合同收款比例',
|
|
|
dataIndex: 'contractAmountProportion',
|
|
|
key: 'contractAmountProportion',
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '应收款',
|
|
|
dataIndex: 'orderReceivables',
|
|
|
key: 'orderReceivables',
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: '已收款',
|
|
|
dataIndex: 'settlementAmount',
|
|
|
key: 'settlementAmount',
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "欠款",
|
|
|
dataIndex: "arrearsAmount",
|
|
|
key: "arrearsAmount",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "已报销",
|
|
|
dataIndex: "expenseAmount",
|
|
|
key: "expenseAmount",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "应公出/已公出/超出",
|
|
|
dataIndex: "shouldPublic",
|
|
|
key: "shouldPublic",
|
|
|
render: (text, record) => {
|
|
|
- return (
|
|
|
- <span>
|
|
|
+ const obj = {
|
|
|
+ children: <span>
|
|
|
{text + " / " + record.alreadyPublic + " / " + record.exceedPublic}
|
|
|
- </span>
|
|
|
- );
|
|
|
- },
|
|
|
+ </span>,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "总成本/实付",
|
|
|
dataIndex: "costAmount",
|
|
|
key: "costAmount",
|
|
|
render: (text, record) => {
|
|
|
- return (
|
|
|
- <span>
|
|
|
+ const obj = {
|
|
|
+ children: <span>
|
|
|
{text + " / " + record.paymentAmount}
|
|
|
- </span>
|
|
|
- );
|
|
|
- },
|
|
|
+ </span>,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "已开票金额",
|
|
|
dataIndex: "invicueAmount",
|
|
|
key: "invicueAmount",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "退款金额",
|
|
|
dataIndex: "refundAmount",
|
|
|
key: "refundAmount",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "财务负责人",
|
|
|
dataIndex: "financeName",
|
|
|
key: "financeName",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "营销负责人",
|
|
|
dataIndex: "salesmanName",
|
|
|
key: "salesmanName",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "项目名称",
|
|
@@ -286,7 +489,7 @@ const ProjecDataStatistics = Form.create()(React.createClass({
|
|
|
key: "taskComment",
|
|
|
render: text => {
|
|
|
return (
|
|
|
- <div style={{ maxWidth: 200 }}>{text}</div>
|
|
|
+ <div style={{ maxWidth: 220 }}>{text}</div>
|
|
|
)
|
|
|
}
|
|
|
},
|
|
@@ -294,21 +497,57 @@ const ProjecDataStatistics = Form.create()(React.createClass({
|
|
|
title: "核算比例",
|
|
|
dataIndex: "hsbl",
|
|
|
key: "hsbl",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "订单情况",
|
|
|
dataIndex: "orderStatus",
|
|
|
key: "orderStatus",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "变更情况",
|
|
|
dataIndex: "changeType",
|
|
|
key: "changeType",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
title: "退单退款",
|
|
|
dataIndex: "refundType",
|
|
|
key: "refundType",
|
|
|
+ render: (text, record) => {
|
|
|
+ const obj = {
|
|
|
+ children: text,
|
|
|
+ props: {
|
|
|
+ rowSpan: record.rowSpan || 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }
|
|
|
},
|
|
|
],
|
|
|
dataSource: [],
|
|
@@ -350,8 +589,9 @@ const ProjecDataStatistics = Form.create()(React.createClass({
|
|
|
pagination.current = 0;
|
|
|
pagination.total = 0;
|
|
|
}
|
|
|
+ let dList = this.handleData(data.data.list, "contractNo")
|
|
|
this.setState({
|
|
|
- dataSource: data.data.list,
|
|
|
+ dataSource: dList,
|
|
|
pagination: this.state.pagination,
|
|
|
pageNo: data.data.pageNo,
|
|
|
});
|
|
@@ -503,6 +743,23 @@ const ProjecDataStatistics = Form.create()(React.createClass({
|
|
|
globalConfig.context + "/open/download?fileName=" + fileName;
|
|
|
},
|
|
|
|
|
|
+ handleData(array, key) {
|
|
|
+ if (array.length === 0) return
|
|
|
+ let arr = [...array]
|
|
|
+ let startItem = arr[0]
|
|
|
+ startItem.rowSpan = 1
|
|
|
+ arr.forEach((item, index) => {
|
|
|
+ let nextItem = arr[index + 1] || {}
|
|
|
+ if (item[key] === nextItem[key]) {
|
|
|
+ startItem.rowSpan++
|
|
|
+ } else {
|
|
|
+ startItem = nextItem
|
|
|
+ startItem.rowSpan = 1
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return arr
|
|
|
+ },
|
|
|
+
|
|
|
search() {
|
|
|
this.loadData();
|
|
|
},
|
|
@@ -1319,7 +1576,7 @@ const ProjecDataStatistics = Form.create()(React.createClass({
|
|
|
dataSource={this.state.dataSource}
|
|
|
pagination={this.state.pagination}
|
|
|
bordered
|
|
|
- rowClassName={getRowClassName}
|
|
|
+ // rowClassName={getRowClassName}
|
|
|
scroll={{ x: 4000 }}
|
|
|
/>
|
|
|
</Spin>
|