Ver código fonte

应收款统计表

HW 3 anos atrás
pai
commit
0742bbae2b

+ 1 - 1
js/component/common/tabelContent/index.jsx

@@ -336,7 +336,7 @@ class TabelContent extends Component{
                         <Table
                             bordered
                             size="middle"
-                            scroll={{ x: 800, y: 0 }}
+                            scroll={this.props.scroll}
                             columns={
                                 this.state.changeList.length > 0
                                     ? this.state.changeList

+ 9 - 0
js/component/manageCenter/customer/content.jsx

@@ -666,6 +666,15 @@ class Content extends Component {
                     });
                 });
                 break;
+                //全国应收款统计表
+            case 'receivablesStatistics':
+                require.ensure([], () => {
+                    const ReceivablesStatistics = require('./operationalData/receivablesStatistics').default;
+                    this.setState({
+                        component: <ReceivablesStatistics/>
+                    });
+                });
+                break;
             //公出统计
             case 'publicStatistics':
                 require.ensure([], () => {

+ 327 - 0
js/component/manageCenter/customer/operationalData/receivablesStatistics/detailedList.jsx

@@ -0,0 +1,327 @@
+import React,{ Component } from 'react';
+import {
+    Modal,
+    Tooltip,
+} from "antd";
+import './index.less';
+import TabelContent from "../../../../common/tabelContent";
+import {
+    getLiquidationStatus,
+    getNewOrderStatus,
+    getProjectName
+} from "../../../../tools";
+
+class DetailedList extends Component{
+    constructor(props) {
+        super(props);
+        this.state= {
+            columns: [
+                {
+                    title: "编号",
+                    dataIndex: "key",
+                    key: "key",
+                    width: 120,
+                },
+                {
+                    title: "催收省份",
+                    dataIndex: "provinceName",
+                    key: "provinceName",
+                    width: 320,
+                },
+                {
+                    title: "催款人",
+                    dataIndex: "aName",
+                    key: "aName",
+                    width: 220,
+                },
+                {
+                    title: "签单额(万元)",
+                    dataIndex: "totalAmount",
+                    key: "totalAmount",
+                    className: 'projectTable',
+                    width: 150,
+                    onCellClick: (record, event) => {
+                        event.stopPropagation();
+                        this.setState({
+                            visible1: true,
+                            aid: record.aid
+                        })
+                    },
+                },
+                {
+                    title: "应收款(万元)",
+                    dataIndex: "money",
+                    key: "money",
+                    className: 'projectTable',
+                    width: 150,
+                    onCellClick: (record, event) => {
+                        event.stopPropagation();
+                        this.setState({
+                            visible1: true,
+                            aid: record.aid
+                        })
+                    },
+                },
+            ],
+            columns1: [
+                {
+                    title: "序号",
+                    dataIndex: "key",
+                    key: "key"
+                },
+                {
+                    title: "合同编号",
+                    dataIndex: "contractNo",
+                    key: "contractNo"
+                },
+                {
+                    title: "订单编号",
+                    dataIndex: "orderNo",
+                    key: "orderNo"
+                },
+                {
+                    title: "客户名称",
+                    dataIndex: "userName",
+                    key: "userName",
+                    render: text => {
+                        return (
+                            <Tooltip title={text}>
+                                <div style={{
+                                    maxWidth:'150px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    }
+                },
+                {
+                    title: "订单负责人",
+                    dataIndex: "salesmanName",
+                    key: "salesmanName"
+                },
+                {
+                    title: "订单部门",
+                    dataIndex: "depName",
+                    key: "depName"
+                },
+                {
+                    title: "订单状态",
+                    dataIndex: "orderStatus",
+                    key: "orderStatus",
+                    render: text => {
+                        return getNewOrderStatus(text);
+                    }
+                },
+                {
+                    title: "项目状态",
+                    dataIndex: "projectStatus",
+                    key: "projectStatus",
+                    render: text => {
+                        return getProjectName(text);
+                    }
+                },
+                {
+                    title: "签单金额(万元)",
+                    dataIndex: "totalAmount",
+                    key: "totalAmount"
+                },
+                {
+                    title: "已收款(万元)",
+                    dataIndex: "settlementAmount",
+                    key: "settlementAmount"
+                },
+                {
+                    title: "未收款(万元)",
+                    dataIndex: "uncollectedAmount",
+                    key: "uncollectedAmount"
+                },
+                {
+                    title: "结算状态",
+                    dataIndex: "liquidationStatus",
+                    key: "liquidationStatus",
+                    render: text => {
+                        return getLiquidationStatus(text);
+                    }
+                },
+                {
+                    title: "催收科目",
+                    dataIndex: "dunSubject",
+                    key: "dunSubject"
+                },
+                {
+                    title: "应收款(万元)",
+                    dataIndex: "accountsReceivable",
+                    key: "accountsReceivable"
+                },
+                {
+                    title: "催款状态",
+                    dataIndex: "dunStatus",
+                    key: "dunStatus"
+                },
+                {
+                    title: "催款启动日期",
+                    dataIndex: "startDate",
+                    key: "startDate"
+                },
+                {
+                    title: "签单时间",
+                    dataIndex: "signDate",
+                    key: "signDate"
+                }
+            ],
+        }
+    }
+
+    searchList(){
+        let arr = [
+            {
+                type:'departmentSelect',
+                dataKey:'depId',
+                placeholder:'请选择部门'
+            },
+            {
+                type:'text',
+                placeholder:'请输入催款人',
+                dataKey:'aName',
+            },
+            {
+                type:'select',
+                dataKey:'sort',
+                placeholder:'请选择排序',
+                selectList:[
+                    {
+                        value:'0',
+                        label:'按总金额排序'
+                    },
+                    {
+                        value:'1',
+                        label:'按数量排序'
+                    },
+                ]
+            },
+            {
+                type:'times',
+                title:'催收时间',
+                dataKey:['startDate','endDate'],
+            },
+        ]
+        return arr;
+    }
+
+    searchList1(){
+        let arr = [
+            {
+                type:'text',
+                dataKey:'name',
+                placeholder:'请输入客户名称',
+            },
+            {
+                type:'text',
+                dataKey:'adminName',
+                placeholder:'请输入营销员名称'
+            },
+            {
+                type:'text',
+                dataKey:'orderNo',
+                placeholder:'请输入订单编号'
+            },
+            {
+                type:'text',
+                dataKey:'contractNo',
+                placeholder:'请输入合同编号'
+            },
+            {
+                type:'departmentSelect',
+                dataKey:'depId',
+                placeholder:'请选择订单部门'
+            },
+            {
+                type:'times',
+                title:'下单时间',
+                dataKey:['starTime','endTime'],
+            },
+        ]
+        return arr;
+    }
+
+    render() {
+        return (
+            <div>
+                <Modal
+                    maskClosable={false}
+                    visible={this.props.visible}
+                    onOk={this.props.onCancel}
+                    onCancel={this.props.onCancel}
+                    width='1200px'
+                    title={this.props.recordInfor.provinceName + '签单统计表'}
+                    footer=''
+                    className="admin-desc-content">
+                    <div className="user-content">
+                        <TabelContent
+                            scroll={{ x: 0, y: 200}}
+                            searchList={this.searchList()}
+                            columns={this.state.columns}
+                            tabelApi={'/api/admin/newOrderDun/selectOrderDun'}
+                            exportApi={'/api/admin/newOrderDun/selectOrderDunExprot'}
+                            query={{
+                                province:this.props.recordInfor.province,
+                            }}
+                            dataProcessing={(data)=>{
+                                let theArr = [];
+                                for (let i = 0; i < data.data.length; i++) {
+                                    let thisdata = data.data[i];
+                                    thisdata.key=i + 1;
+                                    theArr.push(thisdata);
+                                }
+                                return theArr;
+                            }}
+                        />
+                    </div>
+                    {this.state.visible1 && <Modal
+                        maskClosable={false}
+                        visible={this.state.visible1}
+                        onOk={()=>{
+                            this.setState({
+                                visible1:false
+                            })
+                        }}
+                        onCancel={()=>{
+                            this.setState({
+                                visible1:false
+                            })
+                        }}
+                        width='1600px'
+                        title='欠款催收列表'
+                        footer=''
+                        className="admin-desc-content">
+                        <div className="user-content">
+                            <TabelContent
+                                searchList={this.searchList1()}
+                                columns={this.state.columns1}
+                                tabelApi={'/api/admin/newOrder/dunOrderNewList'}
+                                query={{
+                                    specially:1,
+                                    newStatus:1,
+                                    aid:this.state.aid
+                                }}
+                                dataProcessing={(data)=>{
+                                    let theArr = [];
+                                    for (let i = 0; i < data.data.list.length; i++) {
+                                        let thisdata = data.data.list[i];
+                                        thisdata.key=(data.data.pageNo - 1) * data.data.pageSize + i + 1;
+                                        theArr.push(thisdata);
+                                    }
+                                    return theArr;
+                                }}
+                            />
+                        </div>
+                    </Modal>}
+                </Modal>
+            </div>
+        )
+    }
+}
+
+export default DetailedList;

+ 117 - 0
js/component/manageCenter/customer/operationalData/receivablesStatistics/index.jsx

@@ -0,0 +1,117 @@
+import React,{ Component } from 'react';
+import {Select} from "antd";
+import { provinceList} from '@/NewDicProvinceList';
+import './index.less';
+import TabelContent from '../../../../common/tabelContent'
+
+import DetailedList from './detailedList';
+
+class ReceivablesStatistics extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            columns: [
+                {
+                    title: "序号",
+                    dataIndex: "key",
+                    key: "key",
+                    width: 120,
+                },
+                {
+                    title: "催收省份",
+                    dataIndex: "provinceName",
+                    key: "provinceName",
+                    width: 120,
+                },
+                {
+                    title: "签单数/签单额(万元)",
+                    dataIndex: "quantity",
+                    key: "quantity",
+                    width: 120,
+                    className: 'projectTable',
+                    render: (text, record) => {
+                        return(
+                            text + '/' + record.totalAmount
+                        )
+                    },
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible:true,
+                            recordInfor:record
+                        })
+                    }
+                },
+                {
+                    title: "应收款(万元)",
+                    dataIndex: "receivables",
+                    key: "receivables",
+                    className: 'projectTable',
+                    width: 120,
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible:true,
+                            recordInfor:record
+                        })
+                    }
+                },
+            ],
+        }
+    }
+
+    searchList(){
+        let arr = [
+            {
+                type:'departmentSelect',
+                dataKey:'depId',
+                placeholder:'请选择部门'
+            },
+            {
+                type:'times',
+                title:'催收时间',
+                dataKey:['startDate','endDate'],
+            },
+        ]
+        return arr;
+    }
+
+    render() {
+        return (
+            <div className="user-content receivablesStatistics">
+                <div className="content-title">
+                    <span>
+                        全国应收款表
+                    </span>
+                </div>
+                <TabelContent
+                    scroll={{ x: 0, y: 200 }}
+                    searchList={this.searchList()}
+                    columns={this.state.columns}
+                    tabelApi={'/api/admin/newOrderDun/selectOrderDunAll'}
+                    exportApi={'/api/admin/newOrderDun//selectOrderDunAllExprot'}
+                    dataProcessing={(data)=>{
+                        let theArr = [];
+                        for (let i = 0; i < data.data.length; i++) {
+                            let thisdata = data.data[i];
+                            thisdata.key=i + 1;
+                            theArr.push(thisdata);
+                        }
+                        return theArr;
+                    }}
+                />
+                {this.state.visible ? <DetailedList
+                    visible={this.state.visible}
+                    recordInfor={this.state.recordInfor}
+                    onCancel={()=>{
+                        this.setState({
+                            visible:false,
+                            recordInfor:{}
+                        })
+                    }}/> : null}
+            </div>
+        )
+    }
+}
+
+export default ReceivablesStatistics;

+ 13 - 0
js/component/manageCenter/customer/operationalData/receivablesStatistics/index.less

@@ -0,0 +1,13 @@
+.receivablesStatistics{
+  .projectTable{
+    cursor: pointer;
+  }
+
+  .projectTable:hover{
+    background: #71a7e885 !important;
+  }
+
+  .ant-upload-list{
+    display: inline-block !important;
+  }
+}

+ 4 - 0
js/component/manageCenter/customer/operationalData/signatureStatistics/detailedList.jsx

@@ -16,16 +16,19 @@ class DetailedList extends Component{
                     title: "编号",
                     dataIndex: "key",
                     key: "key",
+                    width: 120,
                 },
                 {
                     title: "订单部门",
                     dataIndex: "depName",
                     key: "depName",
+                    width: 320,
                 },
                 {
                     title: "签单人",
                     dataIndex: "name",
                     key: "name",
+                    width: 220,
                 },
                 {
                     title: "总单量(个)",
@@ -297,6 +300,7 @@ class DetailedList extends Component{
                     className="admin-desc-content">
                     <div className="user-content">
                         <TabelContent
+                            scroll={{ x: 0, y: 200}}
                             searchList={this.searchList()}
                             columns={this.state.columns}
                             tabelApi={'/api/admin/newOrder/provinceStatisticsList'}

+ 6 - 0
js/component/manageCenter/customer/operationalData/signatureStatistics/index.jsx

@@ -15,16 +15,19 @@ class SignatureStatistics extends Component{
                     title: "序号",
                     dataIndex: "key",
                     key: "key",
+                    width: 120,
                 },
                 {
                     title: "省份",
                     dataIndex: "province",
                     key: "province",
+                    width: 120,
                 },
                 {
                     title: "签单人数(人)",
                     dataIndex: "counts",
                     key: "counts",
+                    width: 120,
                     className: 'projectTable',
                     onCellClick :(record, event)=>{
                         event.stopPropagation();
@@ -39,6 +42,7 @@ class SignatureStatistics extends Component{
                     dataIndex: "quantity",
                     key: "quantity",
                     className: 'projectTable',
+                    width: 120,
                     onCellClick :(record, event)=>{
                         event.stopPropagation();
                         this.setState({
@@ -52,6 +56,7 @@ class SignatureStatistics extends Component{
                     dataIndex: "total",
                     key: "total",
                     className: 'projectTable',
+                    width: 120,
                     onCellClick :(record, event)=>{
                         event.stopPropagation();
                         this.setState({
@@ -129,6 +134,7 @@ class SignatureStatistics extends Component{
                     </span>
                 </div>
                 <TabelContent
+                    scroll={{ x: 0, y: 200 }}
                     searchList={this.searchList()}
                     columns={this.state.columns}
                     tabelApi={'/api/admin/newOrder/statisticsList'}

+ 0 - 2
js/component/manageCenter/order/orderNew/pressList.jsx

@@ -32,7 +32,6 @@ const IntentionCustomer = Form.create()(React.createClass({
 				adminName:this.state.adminName,//责任人名称
 				starTime: this.state.releaseDate[0],//开始时间
 				endTime: this.state.releaseDate[1],//结束时间
-        specially:1,
         newStatus: this.state.newStatus,
 			},
 			success: function(data) {
@@ -430,7 +429,6 @@ const IntentionCustomer = Form.create()(React.createClass({
             starTime: this.state.releaseDate[0]?this.state.releaseDate[0]:undefined,
             endTime: this.state.releaseDate[1]?this.state.releaseDate[1]:undefined,
             depId: this.state.departmenttSearch ? this.state.departmenttSearch : undefined,//订单部门
-            specially:1,
             pageSize: 9999999,
             newStatus: this.state.newStatus
         }

+ 3 - 0
js/component/manageCenter/project/summary/highTech.jsx

@@ -359,6 +359,7 @@ class HighTech extends Component{
                                             if(infor[0].cname === '高新' && typeof this.state.projectType !== 'number'){
                                                 this.setState({
                                                     columns: highTechColumns,
+                                                    dataSource:[],
                                                     changeList: [],
                                                     status: 1,
                                                 },()=>{
@@ -367,6 +368,7 @@ class HighTech extends Component{
                                             }else if (typeof this.state.projectType !== 'number'){
                                                 this.setState({
                                                     columns: currency,
+                                                    dataSource:[],
                                                     changeList: [],
                                                     status: 0,
                                                 },()=>{
@@ -400,6 +402,7 @@ class HighTech extends Component{
                                             changeList: [],
                                             projectType: e,
                                             status: e === 4 ? 2 : e === 2 ? 3 : e === 1 ? 4 : e === 5 ? 1 : 0,
+                                            dataSource:[],
                                         },()=>{
                                             this.loadData();
                                         })