|
@@ -387,9 +387,9 @@ const ShouKuang = React.createClass({
|
|
|
title: "审核状态",
|
|
|
dataIndex: "status",
|
|
|
key: "status",
|
|
|
- width: 55,
|
|
|
+ width: 110,
|
|
|
render: (text, record) => (
|
|
|
- <div style={{ display: "flex", flexDirection: "row", flexWrap: "warp" }}>
|
|
|
+ <div>
|
|
|
<Tag color={getClockState(text).color}>
|
|
|
{getClockState(text).title}
|
|
|
</Tag>
|
|
@@ -1160,6 +1160,25 @@ const ShouKuang = React.createClass({
|
|
|
className: "title-table",
|
|
|
},
|
|
|
{
|
|
|
+ title: "订单类型",
|
|
|
+ dataIndex: "serviceType",
|
|
|
+ key: "serviceType",
|
|
|
+ className: "title-table",
|
|
|
+ width: 150,
|
|
|
+ render: (text) => {
|
|
|
+ return !!text && text.replace(/[,,]/g, "+");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "订单内容",
|
|
|
+ dataIndex: "serviceProject",
|
|
|
+ key: "serviceProject",
|
|
|
+ className: "title-table",
|
|
|
+ render: (text) => {
|
|
|
+ return (<div dangerouslySetInnerHTML={{ __html: !!text && text.replace(/[,,]/g, "<br/>") }} />);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
title: "财务负责人",
|
|
|
dataIndex: "financeName",
|
|
|
key: "financeName",
|
|
@@ -1208,24 +1227,88 @@ const ShouKuang = React.createClass({
|
|
|
className: "title-table",
|
|
|
},
|
|
|
{
|
|
|
- title: "总成本(万元)",
|
|
|
+ title: "总成本/实付",
|
|
|
dataIndex: "costAmount",
|
|
|
key: "costAmount",
|
|
|
className: "title-table",
|
|
|
- render: (text) => {
|
|
|
- return isNaN(parseFloat(text)) ? text : parseFloat(text);
|
|
|
+ render: (text, record) => {
|
|
|
+ return (
|
|
|
+ <span>
|
|
|
+ {isNaN(parseFloat(text)) ? text : parseFloat(text)}/
|
|
|
+ {isNaN(parseFloat(record.paymentAmount)) ? text : parseFloat(record.paymentAmount)}
|
|
|
+ </span>
|
|
|
+ )
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- title: "已付成本(万元)",
|
|
|
- dataIndex: "paymentAmount",
|
|
|
- key: "paymentAmount",
|
|
|
+ title: "专利/专利已付",
|
|
|
+ dataIndex: "patentCost",
|
|
|
+ key: "patentCost",
|
|
|
className: "title-table",
|
|
|
- render: (text) => {
|
|
|
- return isNaN(parseFloat(text)) ? text : parseFloat(text);
|
|
|
+ render: (text, record) => {
|
|
|
+ return (
|
|
|
+ <span>
|
|
|
+ {isNaN(parseFloat(text)) ? text : parseFloat(text)}/
|
|
|
+ {isNaN(parseFloat(record.patentCostActual)) ? text : parseFloat(record.patentCostActual)}
|
|
|
+ </span>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "软著/软著已付",
|
|
|
+ dataIndex: "softCost",
|
|
|
+ key: "softCost",
|
|
|
+ className: "title-table",
|
|
|
+ render: (text, record) => {
|
|
|
+ return (
|
|
|
+ <span>
|
|
|
+ {isNaN(parseFloat(text)) ? text : parseFloat(text)}/
|
|
|
+ {isNaN(parseFloat(record.softCostActual)) ? text : parseFloat(record.softCostActual)}
|
|
|
+ </span>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "审计/审计已付",
|
|
|
+ dataIndex: "auditCost",
|
|
|
+ key: "auditCost",
|
|
|
+ className: "title-table",
|
|
|
+ render: (text, record) => {
|
|
|
+ return (
|
|
|
+ <span>
|
|
|
+ {isNaN(parseFloat(text)) ? text : parseFloat(text)}/
|
|
|
+ {isNaN(parseFloat(record.auditCostActual)) ? text : parseFloat(record.auditCostActual)}
|
|
|
+ </span>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "其他/其他已付",
|
|
|
+ dataIndex: "otherCost",
|
|
|
+ key: "otherCost",
|
|
|
+ className: "title-table",
|
|
|
+ render: (text, record) => {
|
|
|
+ return (
|
|
|
+ <span>
|
|
|
+ {isNaN(parseFloat(text)) ? text : parseFloat(text)}/
|
|
|
+ {isNaN(parseFloat(record.otherCostActual)) ? text : parseFloat(record.otherCostActual)}
|
|
|
+ </span>
|
|
|
+ )
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
+ title: "预估毛利(万元)",
|
|
|
+ dataIndex: "expectProfit",
|
|
|
+ key: "expectProfit",
|
|
|
+ className: "title-table",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "实际毛利(万元)",
|
|
|
+ dataIndex: "actualProfit",
|
|
|
+ key: "actualProfit",
|
|
|
+ className: "title-table",
|
|
|
+ },
|
|
|
+ {
|
|
|
title: "最近收款(万元)",
|
|
|
dataIndex: "finalReceivables",
|
|
|
key: "finalReceivables",
|
|
@@ -1469,6 +1552,7 @@ const ShouKuang = React.createClass({
|
|
|
},
|
|
|
],
|
|
|
waterData: [],
|
|
|
+ newVisible: "",
|
|
|
};
|
|
|
},
|
|
|
// 特批通过
|
|
@@ -1673,15 +1757,18 @@ const ShouKuang = React.createClass({
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
-
|
|
|
- this.setState({ selectedRowKeys, selectedRows });
|
|
|
+ this.setState({
|
|
|
+ selectedRowKeys,
|
|
|
+ selectedRows,
|
|
|
+ newData: selectedRows,
|
|
|
+ });
|
|
|
},
|
|
|
inRecordCanl() {
|
|
|
this.setState({
|
|
|
bvisible: false,
|
|
|
});
|
|
|
},
|
|
|
- inRecordData() {
|
|
|
+ inRecordData(orderNO) {
|
|
|
this.setState({
|
|
|
loading: true,
|
|
|
});
|
|
@@ -1693,7 +1780,7 @@ const ShouKuang = React.createClass({
|
|
|
globalConfig.context +
|
|
|
"/api/admin/orderInvoice/salesmanOrderInvoiceList",
|
|
|
data: {
|
|
|
- orderNo: this.state.selectedRowKeys[0],
|
|
|
+ orderNo: orderNO || this.state.selectedRowKeys[0],
|
|
|
pageSize: 9999999,
|
|
|
},
|
|
|
success: function (data) {
|
|
@@ -1824,6 +1911,15 @@ const ShouKuang = React.createClass({
|
|
|
deps: this.state.departmenttList,
|
|
|
contractNo: this.state.contractNoSearch,
|
|
|
processStatus: this.state.processStatusSearch,
|
|
|
+ startTime: this.state.releaseDate[0],
|
|
|
+ endTime: this.state.releaseDate[1],
|
|
|
+ startFinalReceivablesTime: this.state.shouKuanDate[0],
|
|
|
+ endFinalReceivablesTime: this.state.shouKuanDate[1],
|
|
|
+ contractNo: this.state.contractNoSearch,
|
|
|
+ liquidationStatus: this.state.liquidationStatus,
|
|
|
+ amountStatus: this.state.amountStatus,
|
|
|
+ approval: this.state.approval,
|
|
|
+ projectType: this.state.projectType,
|
|
|
}
|
|
|
$.ajax({
|
|
|
method: "get",
|
|
@@ -1867,7 +1963,7 @@ const ShouKuang = React.createClass({
|
|
|
});
|
|
|
this.loadData(1, 9999999);
|
|
|
},
|
|
|
- timeData() {
|
|
|
+ timeData(orderNO) {
|
|
|
this.setState({
|
|
|
loading: true,
|
|
|
});
|
|
@@ -1877,7 +1973,7 @@ const ShouKuang = React.createClass({
|
|
|
crossDomain: false,
|
|
|
url: globalConfig.context + "/api/admin/orderProject/taskHoursList",
|
|
|
data: {
|
|
|
- orderNo: this.state.selectedRowKeys[0],
|
|
|
+ orderNo: orderNO || this.state.selectedRowKeys[0],
|
|
|
pageSize: 9999999,
|
|
|
},
|
|
|
success: function (data) {
|
|
@@ -1947,18 +2043,55 @@ const ShouKuang = React.createClass({
|
|
|
"/api/admin/newOrder/exportOrderTaskData?" +
|
|
|
$.param(data);
|
|
|
},
|
|
|
+ // exportCui() {
|
|
|
+ // var data = {
|
|
|
+ // orderNo: this.state.selectedRowKeys[0]
|
|
|
+ // ? this.state.selectedRowKeys[0]
|
|
|
+ // : undefined, //订单编号
|
|
|
+ // // specially: 1,
|
|
|
+ // pageSize: 9999999,
|
|
|
+ // };
|
|
|
+ // window.location.href =
|
|
|
+ // globalConfig.context +
|
|
|
+ // "/api/admin/newOrder/exportOrderDunData?" +
|
|
|
+ // $.param(data);
|
|
|
+ // },
|
|
|
exportCui() {
|
|
|
- var data = {
|
|
|
+ this.setState({
|
|
|
+ exportPendingLoading: true,
|
|
|
+ });
|
|
|
+ message.config({
|
|
|
+ duration: 20,
|
|
|
+ });
|
|
|
+ let loading = message.loading("下载中...");
|
|
|
+ let data = {
|
|
|
orderNo: this.state.selectedRowKeys[0]
|
|
|
? this.state.selectedRowKeys[0]
|
|
|
: undefined, //订单编号
|
|
|
- // specially: 1,
|
|
|
pageSize: 9999999,
|
|
|
};
|
|
|
- window.location.href =
|
|
|
- globalConfig.context +
|
|
|
- "/api/admin/newOrder/exportOrderDunData?" +
|
|
|
- $.param(data);
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url:
|
|
|
+ globalConfig.context + "/api/admin/newOrder/exportOrderDunData",
|
|
|
+ data,
|
|
|
+ success: function (data) {
|
|
|
+ if (data.error.length === 0) {
|
|
|
+ this.download(data.data);
|
|
|
+ } else {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ }
|
|
|
+ }.bind(this),
|
|
|
+ }).always(
|
|
|
+ function () {
|
|
|
+ loading();
|
|
|
+ this.setState({
|
|
|
+ exportPendingLoading: false,
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ );
|
|
|
},
|
|
|
cuiData() {
|
|
|
this.setState({
|
|
@@ -2465,8 +2598,7 @@ const ShouKuang = React.createClass({
|
|
|
wrapperCol: { span: 14 },
|
|
|
};
|
|
|
const { RangePicker } = DatePicker;
|
|
|
- var departmentArr = this.state.departmentArr || [];
|
|
|
- const { loading, selectedRowKeys, visible } = this.state;
|
|
|
+ const { selectedRowKeys } = this.state;
|
|
|
const rowSelection = {
|
|
|
selectedRowKeys,
|
|
|
onChange: this.onSelectChange,
|
|
@@ -2795,7 +2927,8 @@ const ShouKuang = React.createClass({
|
|
|
onClick={() => {
|
|
|
this.inRecordData();
|
|
|
this.setState({
|
|
|
- bvisible: true,
|
|
|
+ // bvisible: true,
|
|
|
+ newVisible: "开票历史记录",
|
|
|
});
|
|
|
}}
|
|
|
>
|
|
@@ -2808,7 +2941,8 @@ const ShouKuang = React.createClass({
|
|
|
onClick={() => {
|
|
|
this.waterData();
|
|
|
this.setState({
|
|
|
- cvisible: true,
|
|
|
+ // cvisible: true,
|
|
|
+ newVisible: "详细收款流水",
|
|
|
});
|
|
|
}}
|
|
|
>
|
|
@@ -2821,7 +2955,8 @@ const ShouKuang = React.createClass({
|
|
|
onClick={() => {
|
|
|
this.timeData();
|
|
|
this.setState({
|
|
|
- timeVisible: true,
|
|
|
+ // timeVisible: true,
|
|
|
+ newVisible: "工时详情",
|
|
|
});
|
|
|
}}
|
|
|
>
|
|
@@ -2834,7 +2969,8 @@ const ShouKuang = React.createClass({
|
|
|
onClick={() => {
|
|
|
this.cuiData();
|
|
|
this.setState({
|
|
|
- cuiVisible: true,
|
|
|
+ // cuiVisible: true,
|
|
|
+ newVisible: "催款详情",
|
|
|
});
|
|
|
}}
|
|
|
>
|
|
@@ -2847,7 +2983,8 @@ const ShouKuang = React.createClass({
|
|
|
onClick={() => {
|
|
|
this.proData();
|
|
|
this.setState({
|
|
|
- proVisible: true,
|
|
|
+ // proVisible: true,
|
|
|
+ newVisible: "项目进度",
|
|
|
});
|
|
|
}}
|
|
|
>
|
|
@@ -2861,7 +2998,8 @@ const ShouKuang = React.createClass({
|
|
|
this.pubData();
|
|
|
this.selectSuperId();
|
|
|
this.setState({
|
|
|
- pubVisible: true,
|
|
|
+ // pubVisible: true,
|
|
|
+ newVisible: "公出详细列表",
|
|
|
});
|
|
|
}}
|
|
|
>
|
|
@@ -3603,6 +3741,596 @@ const ShouKuang = React.createClass({
|
|
|
content={() => this.refs.all}
|
|
|
/>
|
|
|
</Modal>
|
|
|
+
|
|
|
+ {/* 合并查看 */}
|
|
|
+ {
|
|
|
+ this.state.newVisible != "" &&
|
|
|
+ <Modal
|
|
|
+ visible={this.state.newVisible != ""}
|
|
|
+ footer=""
|
|
|
+ title={this.state.newVisible}
|
|
|
+ className="admin-desc-content"
|
|
|
+ width="1500px"
|
|
|
+ pagination={false}
|
|
|
+ onCancel={() => {
|
|
|
+ this.setState({
|
|
|
+ newVisible: "",
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <div style={{ margin: 20 }}>
|
|
|
+ <div style={{ marginBottom: 20 }}>
|
|
|
+ <Table
|
|
|
+ bordered
|
|
|
+ columns={this.state.columns}
|
|
|
+ dataSource={this.state.newData}
|
|
|
+ scroll={{ x: "max-content", y: 0 }}
|
|
|
+ pagination={false}
|
|
|
+ onRowDoubleClick={this.tableRowClick.bind(this)}
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ margin: "11px 0px 10px 10px",
|
|
|
+ background: this.state.newVisible == "开票历史记录" ? "#f04134" : "",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ this.inRecordData();
|
|
|
+ this.setState({
|
|
|
+ newVisible: "开票历史记录"
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 查看开票详情
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ margin: "11px 0px 10px 10px",
|
|
|
+ background: this.state.newVisible == "详细收款流水" ? "#f04134" : "",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ this.waterData();
|
|
|
+ this.setState({
|
|
|
+ newVisible: "详细收款流水",
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 详情收款流水
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ margin: "11px 0px 10px 10px",
|
|
|
+ background: this.state.newVisible == "工时详情" ? "#f04134" : "",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ this.timeData();
|
|
|
+ this.setState({
|
|
|
+ newVisible: "工时详情",
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 工时信息
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ margin: "11px 0px 10px 10px",
|
|
|
+ background: this.state.newVisible == "催款详情" ? "#f04134" : "",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ this.cuiData();
|
|
|
+ this.setState({
|
|
|
+ newVisible: "催款详情",
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 催款信息
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ margin: "11px 0px 10px 10px",
|
|
|
+ background: this.state.newVisible == "项目进度" ? "#f04134" : "",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ this.proData();
|
|
|
+ this.setState({
|
|
|
+ newVisible: "项目进度",
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 项目进度
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ margin: "11px 0px 10px 10px",
|
|
|
+ background: this.state.newVisible == "公出详细列表" ? "#f04134" : "",
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ this.pubData();
|
|
|
+ this.selectSuperId();
|
|
|
+ this.setState({
|
|
|
+ newVisible: "公出详细列表",
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 查看公出
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ {
|
|
|
+ this.state.newVisible == "公出详细列表" &&
|
|
|
+ <div
|
|
|
+ className="user-search"
|
|
|
+ style={{
|
|
|
+ marginTop: "10px",
|
|
|
+ marginLeft: "10px",
|
|
|
+ marginRight: "10px",
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <span style={{ marginRight: "10px" }}>
|
|
|
+ <Select
|
|
|
+ placeholder="请选择审核状态"
|
|
|
+ style={{ width: 120 }}
|
|
|
+ value={this.state.status}
|
|
|
+ onChange={(e) => {
|
|
|
+ this.setState({ status: e });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {clockState.map((v, k) => (
|
|
|
+ <Select.Option key={k} value={v.id}>
|
|
|
+ {v.title}
|
|
|
+ </Select.Option>
|
|
|
+ ))}
|
|
|
+ </Select>
|
|
|
+ </span>
|
|
|
+ <span style={{ marginRight: "10px" }}>
|
|
|
+ <Select
|
|
|
+ placeholder="请选择打卡状态"
|
|
|
+ style={{ width: 120 }}
|
|
|
+ value={this.state.clockIn}
|
|
|
+ onChange={(e) => {
|
|
|
+ this.setState({ clockIn: e });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Select.Option value={1}>已打卡</Select.Option>
|
|
|
+ <Select.Option value={0}>未打卡</Select.Option>
|
|
|
+ </Select>
|
|
|
+ </span>
|
|
|
+ <span style={{ marginRight: "10px" }}>
|
|
|
+ <Select
|
|
|
+ placeholder="请选择公出类型"
|
|
|
+ style={{ width: 120 }}
|
|
|
+ value={this.state.type}
|
|
|
+ onChange={(e) => {
|
|
|
+ this.setState({ type: e });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Select.Option value={0}>业务打卡</Select.Option>
|
|
|
+ <Select.Option value={1}>技术打卡</Select.Option>
|
|
|
+ <Select.Option value={2}>行政打卡</Select.Option>
|
|
|
+ <Select.Option value={3}>技术协单</Select.Option>
|
|
|
+ </Select>
|
|
|
+ </span>
|
|
|
+ <span style={{ marginRight: "10px" }}>
|
|
|
+ <AutoComplete
|
|
|
+ className="certain-category-search"
|
|
|
+ dropdownClassName="certain-category-search-dropdown"
|
|
|
+ dropdownMatchSelectWidth={false}
|
|
|
+ style={{ width: "120px" }}
|
|
|
+ dataSource={options}
|
|
|
+ placeholder="输入公出申请人"
|
|
|
+ value={this.state.auto}
|
|
|
+ onChange={this.httpChange}
|
|
|
+ filterOption={true}
|
|
|
+ onBlur={this.blurChange}
|
|
|
+ onSelect={this.selectAuto}
|
|
|
+ >
|
|
|
+ <Input />
|
|
|
+ </AutoComplete>
|
|
|
+ </span>
|
|
|
+ <span style={{ marginRight: "10px" }}>
|
|
|
+ <AutoComplete
|
|
|
+ className="certain-category-search"
|
|
|
+ dropdownClassName="certain-category-search-dropdown"
|
|
|
+ dropdownMatchSelectWidth={false}
|
|
|
+ style={{ width: "120px" }}
|
|
|
+ dataSource={options1}
|
|
|
+ placeholder="输入跟单人"
|
|
|
+ value={this.state.auto1}
|
|
|
+ onChange={this.httpChange1}
|
|
|
+ filterOption={true}
|
|
|
+ onBlur={this.blurChange1}
|
|
|
+ onSelect={this.selectAuto1}
|
|
|
+ >
|
|
|
+ <Input />
|
|
|
+ </AutoComplete>
|
|
|
+ </span>
|
|
|
+ <span style={{ marginRight: "10px" }}>
|
|
|
+ <Select
|
|
|
+ placeholder="请选择公出部门"
|
|
|
+ style={{ width: 200 }}
|
|
|
+ value={this.state.depId}
|
|
|
+ onChange={(e) => {
|
|
|
+ this.setState({ depId: e });
|
|
|
+ }}
|
|
|
+ notFoundContent="未获取到上级组织列表"
|
|
|
+ >
|
|
|
+ {this.state.contactsOption}
|
|
|
+ </Select>
|
|
|
+ </span>
|
|
|
+ <span style={{ marginRight: "10px" }}>
|
|
|
+ <span style={{ marginRight: "5px", marginBottom: "10px" }}>
|
|
|
+ 公出时间 :
|
|
|
+ </span>
|
|
|
+ <RangePicker
|
|
|
+ style={{ marginRight: "10px", marginBottom: "10px" }}
|
|
|
+ value={[
|
|
|
+ this.state.releaseDate[0]
|
|
|
+ ? moment(this.state.releaseDate[0])
|
|
|
+ : null,
|
|
|
+ this.state.releaseDate[1]
|
|
|
+ ? moment(this.state.releaseDate[1])
|
|
|
+ : null,
|
|
|
+ ]}
|
|
|
+ onChange={(data, dataString) => {
|
|
|
+ this.setState({ releaseDate: dataString });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ onClick={() => {
|
|
|
+ this.pubData();
|
|
|
+ }}
|
|
|
+ style={{ marginRight: "10px", marginBottom: "10px" }}
|
|
|
+ >
|
|
|
+ 搜索
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ onClick={this.resetAll}
|
|
|
+ style={{ marginRight: "10px", marginBottom: "10px" }}
|
|
|
+ >
|
|
|
+ 重置
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "催款详情"
|
|
|
+ ? <Tabs activeKey={this.state.cuiTabKey} onChange={this.cuiTabChange}>
|
|
|
+ <TabPane tab="催款节点" key="1">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <div
|
|
|
+ className="patent-table"
|
|
|
+ ref={(e) => {
|
|
|
+ this.refs.all = e;
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Table
|
|
|
+ columns={this.state.cuiColumns}
|
|
|
+ dataSource={this.state.cuiDataList}
|
|
|
+ scroll={{ x: "max-content", y: 0 }}
|
|
|
+ pagination={false}
|
|
|
+ bordered
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ marginTop: 10,
|
|
|
+ position: "absolute",
|
|
|
+ top: "-60px",
|
|
|
+ right: "100px",
|
|
|
+ }}
|
|
|
+ loading={this.state.exportPendingLoading}
|
|
|
+ onClick={() => { this.exportCui() }}
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </Button>
|
|
|
+ <ReactToPrint
|
|
|
+ trigger={() => (
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ marginTop: 10,
|
|
|
+ position: "absolute",
|
|
|
+ top: "-60px",
|
|
|
+ right: "10px",
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 打印
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ content={() => this.refs.all}
|
|
|
+ />
|
|
|
+ </Spin>
|
|
|
+ </TabPane>
|
|
|
+ <TabPane tab="欠款催收记录" key="2">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <div
|
|
|
+ className="patent-table"
|
|
|
+ ref={(e) => {
|
|
|
+ this.refs.all = e;
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Table
|
|
|
+ columns={this.state.qianColumns}
|
|
|
+ dataSource={this.state.qianDataList}
|
|
|
+ scroll={{ x: "max-content", y: 0 }}
|
|
|
+ pagination={false}
|
|
|
+ bordered
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <ReactToPrint
|
|
|
+ trigger={() => (
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ marginTop: 10,
|
|
|
+ position: "absolute",
|
|
|
+ top: "-60px",
|
|
|
+ right: "10px",
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 打印
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ content={() => this.refs.all}
|
|
|
+ />
|
|
|
+ </Spin>
|
|
|
+ </TabPane>
|
|
|
+ </Tabs>
|
|
|
+ : <div
|
|
|
+ className="patent-table"
|
|
|
+ style={{ position: "relative" }}
|
|
|
+ ref={(e) => {
|
|
|
+ this.refs.all = e;
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Table
|
|
|
+ bordered
|
|
|
+ columns={
|
|
|
+ this.state.newVisible == "开票历史记录"
|
|
|
+ ? this.state.columnsDate : this.state.newVisible == "详细收款流水"
|
|
|
+ ? this.state.waterlistDate : this.state.newVisible == "工时详情"
|
|
|
+ ? this.state.timeColumns : this.state.newVisible == "催款详情"
|
|
|
+ ? this.state.cuiColumns : this.state.newVisible == "项目进度"
|
|
|
+ ? this.state.proColumns : this.state.newVisible == "公出详细列表"
|
|
|
+ && this.state.pubColumns
|
|
|
+ }
|
|
|
+ dataSource={
|
|
|
+ this.state.newVisible == "开票历史记录"
|
|
|
+ ? this.state.recordData : this.state.newVisible == "详细收款流水"
|
|
|
+ ? this.state.waterData : this.state.newVisible == "工时详情"
|
|
|
+ ? this.state.timeDataList : this.state.newVisible == "催款详情"
|
|
|
+ ? this.state.cuiDataList : this.state.newVisible == "项目进度"
|
|
|
+ ? this.state.proDataList : this.state.newVisible == "公出详细列表"
|
|
|
+ && this.state.pubDataList
|
|
|
+ }
|
|
|
+ pagination={false}
|
|
|
+ scroll={{ x: "max-content", y: 0 }}
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ {
|
|
|
+ this.state.newVisible == "开票历史记录" &&
|
|
|
+ <div className="clearfix" style={{ marginTop: "20px" }}>
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label={<span style={{ fontSize: "14px" }}>开票总计</span>}
|
|
|
+ >
|
|
|
+ <span>{this.state.sum + "(万元)"}</span>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "开票历史记录" &&
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "100px",
|
|
|
+ }}
|
|
|
+ loading={this.state.exportPendingLoading}
|
|
|
+ onClick={() => { this.exportKaip() }}
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </Button>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "开票历史记录" &&
|
|
|
+ <ReactToPrint
|
|
|
+ trigger={() => (
|
|
|
+ <Button type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "10px",
|
|
|
+ }}
|
|
|
+ >打印</Button>
|
|
|
+ )}
|
|
|
+ content={() => this.refs.kaiPiao}
|
|
|
+ />
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "详细收款流水" &&
|
|
|
+ <div className="clearfix" style={{ marginTop: "20px" }}>
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label={<span style={{ fontSize: "14px" }}>总计金额</span>}
|
|
|
+ >
|
|
|
+ <span>{this.state.waterSum + "(万元)"}</span>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "详细收款流水" &&
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "100px",
|
|
|
+ }}
|
|
|
+ loading={this.state.exportPendingLoading}
|
|
|
+ onClick={() => { this.exportWater() }}
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </Button>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "详细收款流水" &&
|
|
|
+ <ReactToPrint
|
|
|
+ trigger={() => (
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "10px",
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 打印
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ content={() => this.refs.shouKuan}
|
|
|
+ />
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "工时详情" &&
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "100px",
|
|
|
+ }}
|
|
|
+ loading={this.state.exportPendingLoading}
|
|
|
+ onClick={() => { this.exportTime() }}
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </Button>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "工时详情" &&
|
|
|
+ <ReactToPrint
|
|
|
+ trigger={() => (
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "10px",
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 打印
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ content={() => this.refs.all}
|
|
|
+ />
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "项目进度" &&
|
|
|
+ <span style={{ display: "block", marginTop: 10, color: "red" }}>
|
|
|
+ 外包(内部)价格总计(万元):{this.state.totalWaibao}
|
|
|
+ </span>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "项目进度" &&
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "100px",
|
|
|
+ }}
|
|
|
+ loading={this.state.exportPendingLoading}
|
|
|
+ onClick={() => { this.exportPro() }}
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </Button>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "项目进度" &&
|
|
|
+ <ReactToPrint
|
|
|
+ trigger={() => (
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-40px",
|
|
|
+ right: "10px",
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 打印
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ content={() => this.refs.all}
|
|
|
+ />
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "公出详细列表" &&
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-90px",
|
|
|
+ right: "100px",
|
|
|
+ }}
|
|
|
+ loading={this.state.exportPendingLoading}
|
|
|
+ onClick={() => { this.pubexportExec() }}
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </Button>
|
|
|
+ }
|
|
|
+ {
|
|
|
+ this.state.newVisible == "公出详细列表" &&
|
|
|
+ <ReactToPrint
|
|
|
+ trigger={() => (
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ style={{
|
|
|
+ float: "right",
|
|
|
+ position: "absolute",
|
|
|
+ top: "-90px",
|
|
|
+ right: "10px",
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 打印
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ content={() => this.refs.all}
|
|
|
+ />
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ </Spin>
|
|
|
+ </Modal>
|
|
|
+ }
|
|
|
<textarea id="copyText" style={{ opacity: 0 }} />
|
|
|
</div>
|
|
|
);
|