ソースを参照

运营数据统计

test01 3 年 前
コミット
a78a0d065b

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

@@ -73,7 +73,7 @@ class AutoCompleteSearch extends Component{
         return (
             <Spin spinning={this.state.autoCompleteSearchLoading}>
                 <AutoComplete
-                    value={this.state.searchValue}
+                    value={this.props.value ? this.state.searchValue : ''}
                     dataSource={customerOptions}
                     style={{ width: 200 }}
                     onSelect={this.onSelect}

+ 24 - 14
js/component/common/tabelContent/index.jsx

@@ -31,7 +31,8 @@ class TabelContent extends Component{
                 }
             },
             searchValues:this.props.searchConfig || {},
-            contactsOption:[]
+            contactsOption:[],
+            departmentLoading:false
         }
         this.loadData= this.loadData.bind(this);
         this.resetAll= this.resetAll.bind(this);
@@ -48,7 +49,8 @@ class TabelContent extends Component{
             pageSize: this.state.pagination.pageSize,
         }
         if(this.props.query){
-            searchInfor = Object.assign(searchInfor,this.props.query);
+            let obj = JSON.parse(JSON.stringify(this.props.query))
+            searchInfor = Object.assign(searchInfor,obj);
         }
         if(Object.keys(this.state.searchValues).length > 0){
             searchInfor = Object.assign(searchInfor,this.state.searchValues);
@@ -192,7 +194,7 @@ class TabelContent extends Component{
 
     resetAll(){
         this.setState({
-            searchValues: {}
+            searchValues: this.props.query || {}
         },()=>{
             this.loadData();
         })
@@ -225,16 +227,19 @@ class TabelContent extends Component{
                                                     />
                                                 </FormItem> :
                                                 v.type === 'autoComplete' ?
-                                                    <AutoCompleteSearch
-                                                        onSelect={(value,title)=>{
-                                                            searchValues[v.dataKey] = value
-                                                            if(v.dataTitle){searchValues[v.dataTitle] = title}
-                                                            this.setState({
-                                                                searchValues:  searchValues
-                                                            });
-                                                        }}
-                                                        config={v}
-                                                    />
+                                                    <FormItem label={v.title} style={{marginTop:'-8px'}}>
+                                                        <AutoCompleteSearch
+                                                            value={searchValues[v.dataKey]}
+                                                            onSelect={(value,title)=>{
+                                                                searchValues[v.dataKey] = value
+                                                                if(v.dataTitle){searchValues[v.dataTitle] = title}
+                                                                this.setState({
+                                                                    searchValues:  searchValues
+                                                                });
+                                                            }}
+                                                            config={v}
+                                                        />
+                                                    </FormItem>
                                                     :
                                                     v.type === 'select' || v.type === 'departmentSelect' ?
                                                         <FormItem label={v.title} style={{marginTop:'-8px'}}>
@@ -261,7 +266,12 @@ class TabelContent extends Component{
                                                                                 (
                                                                                     v.type === 'departmentSelect' ?
                                                                                         this.state.contactsOption :
-                                                                                        (v.selectList || [])
+                                                                                        (v.selectList ?
+                                                                                                (
+                                                                                                    typeof v.selectList === 'function'? v.selectList() : v.selectList
+                                                                                                )
+                                                                                                 :[]
+                                                                                        )
                                                                                 ).map((v)=>(
                                                                                     <Select.Option
                                                                                         key={v.value}

+ 354 - 161
js/component/manageCenter/customer/operationalData/interviewStatistics/detailedList.jsx

@@ -1,13 +1,12 @@
 import React,{ Component } from 'react';
-import {
-    Button,
-    Modal, Select, Tag,
-    Tooltip,
-} from "antd";
+import {Button, Modal, Tag, Tooltip,} from "antd";
 import './index.less';
 import TabelContent from "../../../../common/tabelContent";
 import {splitUrl,getClockState} from "@/tools";
 import ImgList from "../../../../common/imgList";
+import {clockState} from "@/dataDic";
+import {getApprovedState, getLiquidationStatus, getNewOrderStatus, getProcessStatus} from "../../../../tools";
+import moment from 'moment';
 
 class DetailedList extends Component{
     constructor(props) {
@@ -21,18 +20,22 @@ class DetailedList extends Component{
                 },
                 {
                     title: "面谈部门",
-                    dataIndex: "depName",
-                    key: "depName",
+                    dataIndex: "name",
+                    key: "name",
                 },
                 {
                     title: "客户类型",
-                    dataIndex: "name",
-                    key: "name",
+                    dataIndex: "newUser",
+                    key: "newUser",
+                    render:(text)=>(
+                        text === 0 ? '新客户' :
+                            text === 1 ? '老客户' : ''
+                    )
                 },
                 {
                     title: "面谈客户",
-                    dataIndex: "name",
-                    key: "name",
+                    dataIndex: "nickname",
+                    key: "nickname",
                 },
                 {
                     title: "面谈数",
@@ -44,21 +47,23 @@ class DetailedList extends Component{
                         event.stopPropagation();
                         this.setState({
                             visible1: true,
-                            aid: record.aid
+                            uid: record.uid,
+                            depId:record.id,
                         })
                     },
                 },
                 {
                     title: "签单数",
-                    dataIndex: "total",
-                    key: "total",
+                    dataIndex: "sign",
+                    key: "sign",
                     className: 'projectTable',
                     width: 150,
                     onCellClick: (record, event) => {
                         event.stopPropagation();
                         this.setState({
                             visible2: true,
-                            aid: record.aid
+                            uid: record.uid,
+                            depId:record.id,
                         })
                     },
                 },
@@ -243,153 +248,261 @@ class DetailedList extends Component{
                     )
                 },
             ],
-        }
-    }
-
-    searchList(){
-        let arr = [
-            {
-                type:'departmentSelect',
-                dataKey:'depId',
-                placeholder:'请选择部门'
-            },
-            {
-                type:'select',
-                dataKey:'province',
-                placeholder:'请选择省份',
-                selectOptionList:()=>{
-                    let Province = [];
-                    provinceList.map(function(item) {
-                        let id = String(item.id)
-                        Province.push(
-                            <Select.Option value={id} key={item.name}>{item.name}</Select.Option>
-                        )
-                    });
-                    return Province
-                },
-            },
-            //0 总数量 1总金额 2总面谈
-            {
-                type:'select',
-                dataKey:'sort',
-                placeholder:'请选择排序',
-                selectList:[
-                    {
-                        value:'0',
-                        label:'按总数量排序'
-                    },
-                    {
-                        value:'1',
-                        label:'按总金额排序'
-                    },
-                    {
-                        value:'2',
-                        label:'按总面谈排序'
-                    },
-                ]
-            },
-            {
-                type:'times',
-                title:'公出时间',
-                dataKey:'date',
-                format: 'YYYY/MM'
-            },
-        ]
-        return arr;
-    }
-
-    searchList1(){
-        let arr = [
-            {
-                type:'autoComplete',
-                dataKey:'orderNo',
-                api:'/api/admin/customer/listAdminByName',
-                search:'adminName',
-                placeholder:'请输入客户名称'
-            },
-            {
-                type:'text',
-                dataKey:'name',
-                placeholder:'请输入客户名称'
-            },
-            {
-                type:'departmentSelect',
-                dataKey:'depId',
-                placeholder:'请选择部门'
-            },
-            {
-                type:'text',
-                dataKey:'contractNo',
-                placeholder:'请输入合同编号'
-            },
-            {
-                type:'select',
-                dataKey:'liquidationStatus',
-                placeholder:'请选择结算状态',
-                selectList:[
-                    {
-                        value:'0',
-                        label:'首付待付请'
-                    },
-                    {
-                        value:'1',
-                        label:'尾款待付清'
-                    },
-                    {
-                        value:'2',
-                        label:'已付清'
+            searchList:[
+                {
+                    type:'departmentSelect',
+                    dataKey:'depId',
+                    placeholder:'请选择部门'
+                },
+                //0 总数量 1总金额 2总面谈
+                {
+                    type:'select',
+                    dataKey:'sort',
+                    placeholder:'请选择排序',
+                    selectList:[
+                        {
+                            value:'0',
+                            label:'按总数量排序'
+                        },
+                        {
+                            value:'1',
+                            label:'按总金额排序'
+                        },
+                        {
+                            value:'2',
+                            label:'按总面谈排序'
+                        },
+                    ]
+                },
+                {
+                    type:'times',
+                    title:'公出时间',
+                    dataKey:'date',
+                    format: 'YYYY/MM'
+                },
+            ],
+            searchList1:[
+                {
+                    type:'select',
+                    dataKey:'status',
+                    placeholder:'请选择审核状态',
+                    selectList:()=>{
+                        let arr = [];
+                        for(let i of clockState){
+                            arr.push({
+                                value:i.id,
+                                label:i.title
+                            })
+                        }
+                        return arr;
                     }
-                ]
-            },
-            {
-                type:'select',
-                dataKey:'approval',
-                placeholder:'请选择特批状态',
-                selectList:[
-                    {
-                        value:'0',
-                        label:'非特批'
-                    },
-                    {
-                        value:'1',
-                        label:'特批'
+                },
+                {
+                    type:'select',
+                    dataKey:'clockIn',
+                    placeholder:'请选择打卡状态',
+                    selectList:[
+                        {
+                            value:'0',
+                            label:'已打卡'
+                        },
+                        {
+                            value:'1',
+                            label:'未打卡'
+                        }
+                    ]
+                },
+                {
+                    type:'autoComplete',
+                    dataKey:'aid',
+                    api:'/api/admin/customer/listAdminByName',
+                    search:'adminName',
+                    placeholder:'请输入公出申请人'
+                },
+                {
+                    type:'autoComplete',
+                    dataKey:'sid',
+                    api:'/api/admin/customer/listAdminByName',
+                    search:'adminName',
+                    placeholder:'请输入跟单人'
+                },
+            ],
+            columns2:[
+                {
+                    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>
+                        )
                     }
-                ]
-            },
-            {
-                type:'select',
-                dataKey:'amountStatus',
-                placeholder:'请选择签单金额',
-                selectList:[
-                    {
-                        value:'0',
-                        label:'10万元以下'
-                    },
-                    {
-                        value:'1',
-                        label:'10~20万元'
+                },
+                {
+                    title: "订单部门",
+                    dataIndex: "depName",
+                    key: "depName",
+                },
+                {
+                    title: "下单时间",
+                    dataIndex: "createDate",
+                    key: "createTime",
+                },
+                {
+                    title: "合同签订时间",
+                    dataIndex: "signDate",
+                    key: "signDate",
+                },
+                {
+                    title: "流程状态",
+                    dataIndex: "processStatus",
+                    key: "processStatus",
+                    render: (text) => {
+                        return getProcessStatus(text);
                     },
-                    {
-                        value:'2',
-                        label:'20~30万元'
+                },
+                {
+                    title: "签单金额(万元)",
+                    dataIndex: "totalAmount",
+                    key: "totalAmount",
+                },
+                {
+                    title: "开票金额(万元)",
+                    dataIndex: "invoiceAmount",
+                    key: "invoiceAmount",
+                },
+                {
+                    title: "已收款(万元)",
+                    dataIndex: "settlementAmount",
+                    key: "settlementAmount",
+                },
+                {
+                    title: "结算状态",
+                    dataIndex: "liquidationStatus",
+                    key: "liquidationStatus",
+                    render: (text) => {
+                        return getLiquidationStatus(text);
                     },
-                    {
-                        value:'3',
-                        label:'30~40万元'
+                },
+                {
+                    title: "是否特批",
+                    dataIndex: "approval",
+                    key: "approval",
+                    render: (text) => {
+                        return getApprovedState(text);
                     },
-                    {
-                        value:'4',
-                        label:'40万元以上'
+                },
+                {
+                    title: "订单状态",
+                    dataIndex: "orderStatus",
+                    key: "orderStatus",
+                    render: (text) => {
+                        return getNewOrderStatus(text);
                     },
-                ]
-            },
-            {
-                type:'times',
-                title:'下单时间',
-                dataKey:['starTime','endTime'],
-            },
-        ]
-        return arr;
+                },
+                {
+                    title: "财务负责人",
+                    dataIndex: "financeName",
+                    key: "financeName",
+                },
+            ],
+            searchList2:[
+                {
+                    type:'text',
+                    placeholder:'请输入订单编号',
+                    dataKey:'orderNo',
+                },
+                {
+                    type:'text',
+                    placeholder:'请输入客户名称',
+                    dataKey:'name',
+                },
+                {
+                    type:'text',
+                    placeholder:'请输入合同编号',
+                    dataKey:'contractNo',
+                },
+                {
+                    type:'select',
+                    dataKey:'liquidationStatus',
+                    placeholder:'请选择结算状态',
+                    selectList:[
+                        {
+                            value:'0',
+                            label:'首付待付请'
+                        },
+                        {
+                            value:'1',
+                            label:'尾款待付清'
+                        },
+                        {
+                            value:'2',
+                            label:'已付清'
+                        },
+                    ]
+                },
+                {
+                    type:'select',
+                    dataKey:'approval',
+                    placeholder:'请选择特批状态',
+                    selectList:[
+                        {
+                            value:'0',
+                            label:'非特批'
+                        },
+                        {
+                            value:'1',
+                            label:'特批'
+                        },
+                    ]
+                },
+                {
+                    type:'select',
+                    dataKey:'amountStatus',
+                    placeholder:'请选择签单金额',
+                    selectList:[
+                        {
+                            value:'0',
+                            label:'10万元以下'
+                        },
+                        {
+                            value:'1',
+                            label:'10~20万元'
+                        },
+                        {
+                            value:'2',
+                            label:'20~30万元'
+                        },
+                        {
+                            value:'3',
+                            label:'30~40万元'
+                        },
+                        {
+                            value:'4',
+                            label:'40万元以上'
+                        },
+                    ]
+                },
+            ],
+            searchConfig:{}
+        }
     }
 
     render() {
@@ -401,18 +514,29 @@ class DetailedList extends Component{
                     onOk={this.props.onCancel}
                     onCancel={this.props.onCancel}
                     width='1200px'
-                    title={this.props.recordInfor.province + '面谈表'}
+                    title={this.props.recordInfor.name + '面谈表'}
                     footer=''
                     className="admin-desc-content">
                     <div className="user-content">
                         <TabelContent
-                            searchList={this.searchList()}
+                            searchList={this.state.searchList}
                             columns={this.state.columns}
+                            searchConfig={this.props.searchConfig}
                             tabelApi={'/api/admin/provinceFollowStatisticsList'}
                             exportApi={'/api/admin/provinceFollowStatisticsListExprot'}
                             query={{
                                 province:this.props.recordInfor.id,
                             }}
+                            onRowClick={()=>{}}
+                            searchOperation={(value)=>{
+                                for(let i of Object.keys(value)){
+                                    if(i === 'sort' || i === 'pageNo' || i === 'pageSize'){
+                                        delete value[i]
+                                    }
+
+                                }
+                                this.setState({searchConfig:value})}
+                            }
                             dataProcessing={(data)=>{
                                 let theArr = [];
                                 for (let i = 0; i < data.data.length; i++) {
@@ -424,17 +548,22 @@ class DetailedList extends Component{
                             }}
                         />
                     </div>
+
                     {this.state.visible1 && <Modal
                         maskClosable={false}
                         visible={this.state.visible1}
                         onOk={()=>{
                             this.setState({
-                                visible1:false
+                                visible1:false,
+                                uid:'',
+                                depId:''
                             })
                         }}
                         onCancel={()=>{
                             this.setState({
-                                visible1:false
+                                visible1:false,
+                                uid:'',
+                                depId:''
                             })
                         }}
                         width='1600px'
@@ -443,10 +572,73 @@ class DetailedList extends Component{
                         className="admin-desc-content">
                         <div className="user-content">
                             <TabelContent
-                                searchList={this.searchList1()}
+                                scroll={{ x: 1200 }}
+                                searchConfig={this.state.searchConfig}
+                                searchList={this.state.searchList1}
                                 columns={this.state.columns1}
                                 tabelApi={'/api/admin/release/publicReleaseDtails'}
                                 exportApi={'/api/admin/release/publicReleaseDtails/export'}
+                                query={{
+                                    uid:this.state.uid,
+                                    depId:this.state.depId,
+                                    releaseStart:moment(this.state.searchConfig.date).startOf('month').format('YYYY-MM-DD'),
+                                    releaseEnd:moment(this.state.searchConfig.date).endOf('month').format('YYYY-MM-DD')
+                                }}
+                                exportExecProcessing={(data)=>{
+                                    data.uid = this.state.uid;
+                                    data.depId = this.state.depId;
+                                    return data;
+                                }}
+                                onRowClick={()=>{}}
+                                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>}
+
+                    {this.state.visible2 && <Modal
+                        maskClosable={false}
+                        visible={this.state.visible2}
+                        onOk={()=>{
+                            this.setState({
+                                visible2:false,
+                                uid:'',
+                                depId:''
+                            })
+                        }}
+                        onCancel={()=>{
+                            this.setState({
+                                visible2:false,
+                                uid:'',
+                                depId:''
+                            })
+                        }}
+                        width='1600px'
+                        title='客户订单列表'
+                        footer=''
+                        className="admin-desc-content">
+                        <div className="user-content">
+                            <TabelContent
+                                scroll={{ x: 1200 }}
+                                searchConfig={this.state.searchConfig}
+                                searchList={this.state.searchList2}
+                                columns={this.state.columns2}
+                                tabelApi={'/api/admin/newOrder/orderNewList'}
+                                query={{
+                                    uid:this.state.uid,
+                                    depId:this.state.depId,
+                                    specially: 8,
+                                    starTime:moment(this.state.searchConfig.date).startOf('month').format('YYYY-MM-DD'),
+                                    endTime:moment(this.state.searchConfig.date).endOf('month').format('YYYY-MM-DD')
+                                }}
+                                onRowClick={()=>{}}
                                 dataProcessing={(data)=>{
                                     let theArr = [];
                                     for (let i = 0; i < data.data.list.length; i++) {
@@ -459,6 +651,7 @@ class DetailedList extends Component{
                             />
                         </div>
                     </Modal>}
+
                 </Modal>
 
                 {this.state.imgListVisible ? <Modal

+ 56 - 22
js/component/manageCenter/customer/operationalData/interviewStatistics/index.jsx

@@ -5,6 +5,7 @@ import './index.less';
 import TabelContent from '../../../../common/tabelContent'
 
 import DetailedList from './detailedList';
+import moment from "moment";
 
 class InterviewStatistics extends Component{
     constructor(props) {
@@ -17,56 +18,75 @@ class InterviewStatistics extends Component{
                     key: "key",
                 },
                 {
-                    title: "面谈部门",
-                    dataIndex: "province",
-                    key: "province",
+                    title: "省份",
+                    dataIndex: "name",
+                    key: "name",
                 },
                 {
                     title: "老客户面谈数",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "useInterview",
+                    key: "useInterview",
                 },
                 {
                     title: "老客户签单数/金额",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "useQuantity",
+                    key: "useQuantity",
+                    render:(text, record)=>(
+                        text + '/' + record.useTotal
+                    )
                 },
                 {
                     title: "老客户面谈率",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "useRatio",
+                    key: "useRatio",
+                    render:(text)=>(
+                        parseFloat(text) * 100 + '%'
+                    )
                 },
                 {
                     title: "新客户面谈数",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "newInterview",
+                    key: "newInterview",
                 },
                 {
                     title: "新客户签单数/金额",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "newQuantity",
+                    key: "newQuantity",
+                    render:(text, record)=>(
+                        text + '/' + record.newTotal
+                    )
                 },
                 {
                     title: "新客户面谈率",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "newRatio",
+                    key: "newRatio",
+                    render:(text)=>(
+                        parseFloat(text) * 100 + '%'
+                    )
                 },
                 {
                     title: "总面数",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "totalInterview",
+                    key: "totalInterview",
                 },
                 {
                     title: "总签单数/金额",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "totalQuantity",
+                    key: "totalQuantity",
+                    render:(text, record)=>(
+                        text + '/' + record.total
+                    )
                 },
                 {
                     title: "总面谈率",
-                    dataIndex: "counts",
-                    key: "counts",
+                    dataIndex: "totalRatio",
+                    key: "totalRatio",
+                    render:(text)=>(
+                        parseFloat(text) * 100 + '%'
+                    )
                 },
             ],
+            searchConfig:{}
         }
     }
 
@@ -116,7 +136,8 @@ class InterviewStatistics extends Component{
                 type:'times',
                 title:'公出时间',
                 dataKey:'date',
-                format: 'YYYY/MM'
+                format: 'YYYY/MM',
+
             },
         ]
         return arr;
@@ -133,6 +154,18 @@ class InterviewStatistics extends Component{
                 <TabelContent
                     searchList={this.searchList()}
                     columns={this.state.columns}
+                    searchConfig={{
+                        date:moment().subtract(1, 'months').format("YYYY-MM")
+                    }}
+                    searchOperation={(value)=>{
+                        for(let i of Object.keys(value)){
+                            if(i === 'sort' || i === 'pageNo' || i === 'pageSize'){
+                                delete value[i]
+                            }
+
+                        }
+                        this.setState({searchConfig:value})}
+                    }
                     tabelApi={'/api/admin/followStatisticsList'}
                     exportApi={'/api/admin/followStatisticsListExport'}
                     onRowClick={(row)=>{
@@ -159,6 +192,7 @@ class InterviewStatistics extends Component{
                     }}
                 />
                 {this.state.visible ? <DetailedList
+                    searchConfig={this.state.searchConfig}
                     visible={this.state.visible}
                     recordInfor={this.state.recordInfor}
                     onCancel={()=>{

+ 49 - 45
js/component/manageCenter/customer/operationalData/receivablesStatistics/detailedList.jsx

@@ -171,11 +171,7 @@ class DetailedList extends Component{
                     key: "signDate"
                 }
             ],
-        }
-    }
-
-    searchList(){
-        let arr = [
+            searchList:[
             {
                 type:'departmentSelect',
                 dataKey:'depId',
@@ -206,44 +202,41 @@ class DetailedList extends Component{
                 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;
+        ],
+            searchList1:[
+                {
+                    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'],
+                },
+            ],
+            searchConfig:{},
+        }
     }
 
     render() {
@@ -261,8 +254,18 @@ class DetailedList extends Component{
                     <div className="user-content">
                         <TabelContent
                             scroll={{ x: 0, y: 200}}
-                            searchList={this.searchList()}
+                            searchList={this.state.searchList}
                             columns={this.state.columns}
+                            searchConfig={this.props.searchConfig}
+                            searchOperation={(value)=>{
+                                for(let i of Object.keys(value)){
+                                    if(i === 'sort' || i === 'pageNo' || i === 'pageSize'){
+                                        delete value[i]
+                                    }
+
+                                }
+                                this.setState({searchConfig:value})}
+                            }
                             tabelApi={'/api/admin/newOrderDun/selectOrderDun'}
                             exportApi={'/api/admin/newOrderDun/selectOrderDunExprot'}
                             query={{
@@ -298,9 +301,10 @@ class DetailedList extends Component{
                         className="admin-desc-content">
                         <div className="user-content">
                             <TabelContent
-                                searchList={this.searchList1()}
+                                searchList={this.state.searchList1}
                                 columns={this.state.columns1}
                                 tabelApi={'/api/admin/newOrder/dunOrderNewList'}
+                                searchConfig={this.state.searchConfig}
                                 query={{
                                     specially:1,
                                     newStatus:1,

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

@@ -57,6 +57,7 @@ class ReceivablesStatistics extends Component{
                     }
                 },
             ],
+            searchConfig:{}
         }
     }
 
@@ -88,6 +89,15 @@ class ReceivablesStatistics extends Component{
                     scroll={{ x: 0, y: 200 }}
                     searchList={this.searchList()}
                     columns={this.state.columns}
+                    searchOperation={(value)=>{
+                        for(let i of Object.keys(value)){
+                            if(i === 'sort' || i === 'pageNo' || i === 'pageSize'){
+                                delete value[i]
+                            }
+
+                        }
+                        this.setState({searchConfig:value})}
+                    }
                     tabelApi={'/api/admin/newOrderDun/selectOrderDunAll'}
                     exportApi={'/api/admin/newOrderDun//selectOrderDunAllExprot'}
                     dataProcessing={(data)=>{
@@ -101,6 +111,7 @@ class ReceivablesStatistics extends Component{
                     }}
                 />
                 {this.state.visible ? <DetailedList
+                    searchConfig={this.state.searchConfig}
                     visible={this.state.visible}
                     recordInfor={this.state.recordInfor}
                     onCancel={()=>{

+ 33 - 5
js/component/manageCenter/customer/publicSummary/index.jsx

@@ -545,6 +545,14 @@ class PublicSummary extends Component{
     }
 
     exportExec(){
+        this.setState({
+            exportPendingLoading: true
+        })
+        message.config({
+            duration: 20,
+        });
+        let loading = message.loading('下载中...');
+
         let data = {
             releaseStart:this.state.releaseDate[0],
             releaseEnd:this.state.releaseDate[1],
@@ -565,10 +573,30 @@ class PublicSummary extends Component{
             }
 
         }
-        window.location.href =
-            globalConfig.context +
-            "/api/admin/release/publicReleaseDtails/export?" +
-            $.param(data);
+
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/release/publicReleaseDtails/export?" + $.param(data),
+            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));
+    }
+
+    download(fileName){
+        window.location.href = globalConfig.context + "/open/download?fileName=" + fileName
     }
 
     render() {
@@ -727,7 +755,7 @@ class PublicSummary extends Component{
                             </TabPane>
                             <TabPane tab="导出" key="3">
                                 <div style={{ float: "left" }}>
-                                    <Button onClick={this.exportExec} style={{ margin: 10 }}>导出excel</Button>
+                                    <Button loading={this.state.exportPendingLoading} onClick={this.exportExec} style={{ margin: 10 }}>导出excel</Button>
                                 </div>
                             </TabPane>
                         </Tabs>