|
@@ -11,14 +11,21 @@ import {
|
|
|
Select,
|
|
|
message,
|
|
|
DatePicker,
|
|
|
- Modal
|
|
|
+ Modal,
|
|
|
+ Tabs
|
|
|
} from "antd";
|
|
|
import OrderDesc from "../orderDetail/orderDesc";
|
|
|
import Receivable from "./receivable";
|
|
|
import Assign from "@/manageCenter/publicComponent/assign";
|
|
|
-import { getLiquidationStatus, getProcessStatus, getApproval } from "@/tools";
|
|
|
+import {
|
|
|
+ getLiquidationStatus,
|
|
|
+ getProcessStatus,
|
|
|
+ getApproval,
|
|
|
+ getInvoiceStatus
|
|
|
+} from "@/tools";
|
|
|
import { ChooseList } from "../../order/orderNew/chooseList"
|
|
|
const FormItem = Form.Item;
|
|
|
+const { TabPane } = Tabs;
|
|
|
|
|
|
const ShouKuang = React.createClass({
|
|
|
departmentList() {
|
|
@@ -93,7 +100,7 @@ const ShouKuang = React.createClass({
|
|
|
for (let i = 0; i < data.data.list.length; i++) {
|
|
|
let thisdata = data.data.list[i];
|
|
|
theArr.push({
|
|
|
- key: i,
|
|
|
+ key: thisdata.orderNo,
|
|
|
orderNo: thisdata.orderNo,
|
|
|
orderType: thisdata.orderType,
|
|
|
orderStatus: thisdata.orderStatus,
|
|
@@ -166,7 +173,7 @@ const ShouKuang = React.createClass({
|
|
|
{
|
|
|
title: "订单编号",
|
|
|
dataIndex: "orderNo",
|
|
|
- key: "orderNo",
|
|
|
+ key: "orderNo"
|
|
|
// fixed: "left"
|
|
|
},
|
|
|
{
|
|
@@ -305,7 +312,37 @@ const ShouKuang = React.createClass({
|
|
|
}
|
|
|
],
|
|
|
dataSource: [],
|
|
|
- searchTime: [,]
|
|
|
+ searchTime: [],
|
|
|
+ columnsDate: [
|
|
|
+ {
|
|
|
+ title: "编号",
|
|
|
+ dataIndex: "id",
|
|
|
+ key: "id"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "订单编号",
|
|
|
+ dataIndex: "orderno",
|
|
|
+ key: "orderno"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "开票金额(万元)",
|
|
|
+ dataIndex: "amount",
|
|
|
+ key: "amount"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "申请时间",
|
|
|
+ dataIndex: "createTime",
|
|
|
+ key: "createTime"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "开票状态",
|
|
|
+ dataIndex: "status",
|
|
|
+ key: "status",
|
|
|
+ render: text => {
|
|
|
+ return getInvoiceStatus(text);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
};
|
|
|
},
|
|
|
// 特批通过
|
|
@@ -466,91 +503,187 @@ const ShouKuang = React.createClass({
|
|
|
changeList: newArr
|
|
|
});
|
|
|
},
|
|
|
+ callback(key) {
|
|
|
+ console.log(key);
|
|
|
+ },
|
|
|
+ onSelectChange(selectedRowKeys) {
|
|
|
+ console.log("selectedRowKeys changed: ", selectedRowKeys);
|
|
|
+ this.setState({ selectedRowKeys });
|
|
|
+ },
|
|
|
+ inRecordCanl() {
|
|
|
+ this.setState({
|
|
|
+ bvisible: false
|
|
|
+ });
|
|
|
+ },
|
|
|
+ inRecordData() {
|
|
|
+ this.setState({
|
|
|
+ loading: true
|
|
|
+ });
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url:
|
|
|
+ globalConfig.context +
|
|
|
+ "/api/admin/orderInvoice/salesmanOrderInvoiceList",
|
|
|
+ data: {
|
|
|
+ orderNo: this.state.selectedRowKeys[0]
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ let sum = 0;
|
|
|
+ if (!data.data) {
|
|
|
+ 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];
|
|
|
+ sum += parseFloat(thisdata.amount);
|
|
|
+ theArr.push({
|
|
|
+ id: thisdata.id,
|
|
|
+ orderno: thisdata.orderno, //订单编号
|
|
|
+ amount: thisdata.amount, //签单金额
|
|
|
+ createTime: thisdata.createTime, //流程状态
|
|
|
+ status: thisdata.status, //结算状态
|
|
|
+ rejectReason: thisdata.rejectReason
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.setState({
|
|
|
+ recordData: theArr,
|
|
|
+ sum: sum.toFixed(4)
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ }).done(
|
|
|
+ function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this)
|
|
|
+ );
|
|
|
+ },
|
|
|
render() {
|
|
|
+ const formItemLayout = {
|
|
|
+ labelCol: { span: 8 },
|
|
|
+ wrapperCol: { span: 14 }
|
|
|
+ };
|
|
|
const { RangePicker } = DatePicker;
|
|
|
var departmentArr = this.state.departmentArr || [];
|
|
|
+ const { loading, selectedRowKeys, visible } = this.state;
|
|
|
+ const rowSelection = {
|
|
|
+ selectedRowKeys,
|
|
|
+ onChange: this.onSelectChange,
|
|
|
+ hideDefaultSelections: true
|
|
|
+ };
|
|
|
return (
|
|
|
<div className="user-content">
|
|
|
<div className="content-title">
|
|
|
<span>收款结算</span>
|
|
|
</div>
|
|
|
- <div className="user-search">
|
|
|
- <Input
|
|
|
- placeholder="订单编号"
|
|
|
- value={this.state.orderNoSearch}
|
|
|
- onChange={e => {
|
|
|
- this.setState({ orderNoSearch: e.target.value });
|
|
|
- }}
|
|
|
- />
|
|
|
- <Input
|
|
|
- placeholder="客户名称"
|
|
|
- value={this.state.nameSearch}
|
|
|
- onChange={e => {
|
|
|
- this.setState({ nameSearch: e.target.value });
|
|
|
- }}
|
|
|
- />
|
|
|
- <Select
|
|
|
- placeholder="订单部门"
|
|
|
- style={{ width: 150, marginRight: 10 }}
|
|
|
- value={this.state.departmenttList}
|
|
|
- onChange={e => {
|
|
|
- this.setState({ departmenttList: e });
|
|
|
- }}
|
|
|
- >
|
|
|
- {departmentArr.map(function(item) {
|
|
|
- return <Select.Option key={item.id}>{item.name}</Select.Option>;
|
|
|
- })}
|
|
|
- </Select>
|
|
|
- <Input
|
|
|
- placeholder="合同编号"
|
|
|
- value={this.state.contractNoSearch}
|
|
|
- onChange={e => {
|
|
|
+
|
|
|
+ <Tabs defaultActiveKey="1" onChange={this.callback}>
|
|
|
+ <TabPane tab="更改表格显示数据" key="1">
|
|
|
+ <div style={{ marginLeft: 10 }}>
|
|
|
+ <ChooseList
|
|
|
+ columns={this.state.columns}
|
|
|
+ changeFn={this.changeList}
|
|
|
+ changeList={this.state.changeList}
|
|
|
+ top={55}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </TabPane>
|
|
|
+ <TabPane tab="搜索" key="2">
|
|
|
+ <div className="user-search" style={{ marginLeft: 10 }}>
|
|
|
+ <Input
|
|
|
+ placeholder="订单编号"
|
|
|
+ value={this.state.orderNoSearch}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({ orderNoSearch: e.target.value });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <Input
|
|
|
+ placeholder="客户名称"
|
|
|
+ value={this.state.nameSearch}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({ nameSearch: e.target.value });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <Select
|
|
|
+ placeholder="订单部门"
|
|
|
+ style={{ width: 150, marginRight: 10 }}
|
|
|
+ value={this.state.departmenttList}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({ departmenttList: e });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {departmentArr.map(function(item) {
|
|
|
+ return (
|
|
|
+ <Select.Option key={item.id}>{item.name}</Select.Option>
|
|
|
+ );
|
|
|
+ })}
|
|
|
+ </Select>
|
|
|
+ <Input
|
|
|
+ placeholder="合同编号"
|
|
|
+ value={this.state.contractNoSearch}
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({
|
|
|
+ contractNoSearch: e.target.value
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <Select
|
|
|
+ placeholder="流程状态"
|
|
|
+ onChange={e => {
|
|
|
+ this.setState({ processStatusSearch: e });
|
|
|
+ }}
|
|
|
+ style={{ width: 160, marginRight: 5 }}
|
|
|
+ value={this.state.processStatusSearch}
|
|
|
+ >
|
|
|
+ <Option value="3">未分配</Option>
|
|
|
+ <Option value="4">已分配</Option>
|
|
|
+ </Select>
|
|
|
+ <span style={{ marginRight: 10 }}>下单日期:</span>
|
|
|
+ <RangePicker
|
|
|
+ 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 });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ onClick={this.search}
|
|
|
+ style={{ marginLeft: 10 }}
|
|
|
+ >
|
|
|
+ 搜索
|
|
|
+ </Button>
|
|
|
+ <Button onClick={this.reset}>重置</Button>
|
|
|
+ </div>
|
|
|
+ </TabPane>
|
|
|
+ <TabPane tab="打印" key="3">
|
|
|
+ Content of Tab Pane 3
|
|
|
+ </TabPane>
|
|
|
+ <TabPane tab="导出Excel" key="4">
|
|
|
+ Content of Tab Pane 3
|
|
|
+ </TabPane>
|
|
|
+ <TabPane tab="查看" key="5">
|
|
|
+ <Button type="primary" disabled={ this.state.selectedRowKeys.length != 1 } style={{ margin: "0px 0px 10px 10px" }} onClick = {() => {
|
|
|
+ this.inRecordData()
|
|
|
this.setState({
|
|
|
- contractNoSearch: e.target.value
|
|
|
+ bvisible: true
|
|
|
});
|
|
|
- }}
|
|
|
- />
|
|
|
- <Select
|
|
|
- placeholder="流程状态"
|
|
|
- onChange={e => {
|
|
|
- this.setState({ processStatusSearch: e });
|
|
|
- }}
|
|
|
- style={{ width: 160, marginRight: 5 }}
|
|
|
- value={this.state.processStatusSearch}
|
|
|
- >
|
|
|
- <Option value="3">未分配</Option>
|
|
|
- <Option value="4">已分配</Option>
|
|
|
- </Select>
|
|
|
- <span style={{ marginRight: 10 }}>下单日期:</span>
|
|
|
- <RangePicker
|
|
|
- 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 });
|
|
|
- }}
|
|
|
- />
|
|
|
- <Button
|
|
|
- type="primary"
|
|
|
- onClick={this.search}
|
|
|
- style={{ marginLeft: 10 }}
|
|
|
- >
|
|
|
- 搜索
|
|
|
- </Button>
|
|
|
- <Button onClick={this.reset}>重置</Button>
|
|
|
- </div>
|
|
|
-
|
|
|
- <ChooseList
|
|
|
- columns={this.state.columns}
|
|
|
- changeFn={this.changeList}
|
|
|
- changeList={this.state.changeList}
|
|
|
- top={55}
|
|
|
- />
|
|
|
+ }}>
|
|
|
+ 查看开票详情
|
|
|
+ </Button>
|
|
|
+ </TabPane>
|
|
|
+ </Tabs>
|
|
|
|
|
|
<div className="patent-table">
|
|
|
<Spin spinning={this.state.loading}>
|
|
@@ -562,7 +695,7 @@ const ShouKuang = React.createClass({
|
|
|
: this.state.changeList
|
|
|
}
|
|
|
dataSource={this.state.dataSource}
|
|
|
- rowSelection={false}
|
|
|
+ rowSelection={rowSelection}
|
|
|
scroll={{ x: true, y: 0 }}
|
|
|
pagination={this.state.pagination}
|
|
|
onRowClick={this.tableRowClick.bind(this)}
|
|
@@ -641,6 +774,34 @@ const ShouKuang = React.createClass({
|
|
|
</Spin>
|
|
|
</Form>
|
|
|
</Modal>
|
|
|
+
|
|
|
+ <Modal
|
|
|
+ visible={this.state.bvisible}
|
|
|
+ footer=""
|
|
|
+ title="开票历史记录"
|
|
|
+ className="admin-desc-content"
|
|
|
+ width="900px"
|
|
|
+ onCancel={this.inRecordCanl}
|
|
|
+ >
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <div className="patent-table">
|
|
|
+ <Table
|
|
|
+ columns={this.state.columnsDate}
|
|
|
+ dataSource={this.state.recordData}
|
|
|
+ pagination={false}
|
|
|
+ />
|
|
|
+ <div className="clearfix" style={{ marginTop: "20px" }}>
|
|
|
+ <FormItem
|
|
|
+ className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label={<span style={{ fontSize: "14px" }}>开票总计</span>}
|
|
|
+ >
|
|
|
+ <span>{this.state.sum + "(万元)"}</span>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Spin>
|
|
|
+ </Modal>
|
|
|
</div>
|
|
|
);
|
|
|
}
|