Selaa lähdekoodia

运营数据统计

test01 3 vuotta sitten
vanhempi
commit
432538cc93

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

@@ -14,6 +14,12 @@ class AutoCompleteSearch extends Component{
         this.onSearch = this.onSearch.bind(this);
     }
 
+    onReset(){
+        this.setState({
+            searchValue:''
+        })
+    }
+
     onSelect(value,option){
         let arr = this.state.contactsOption.filter(v=>v.value === value);
         this.setState({
@@ -73,7 +79,7 @@ class AutoCompleteSearch extends Component{
         return (
             <Spin spinning={this.state.autoCompleteSearchLoading}>
                 <AutoComplete
-                    value={this.props.value ? this.state.searchValue : ''}
+                    value={this.state.searchValue}
                     dataSource={customerOptions}
                     style={{ width: 200 }}
                     onSelect={this.onSelect}

+ 9 - 6
js/component/common/tabelContent/index.jsx

@@ -38,6 +38,7 @@ class TabelContent extends Component{
         this.resetAll= this.resetAll.bind(this);
         this.exportExec= this.exportExec.bind(this);
         this.selectSuperId= this.selectSuperId.bind(this);
+        this.autoCompleteSearchRef = {}
     }
 
     loadData(pageNo) {
@@ -193,6 +194,9 @@ class TabelContent extends Component{
     }
 
     resetAll(){
+        for(let i of Object.keys(this.autoCompleteSearchRef)){
+            this.autoCompleteSearchRef[i].onReset();
+        }
         this.setState({
             searchValues: this.props.query || {}
         },()=>{
@@ -212,9 +216,8 @@ class TabelContent extends Component{
                                     (this.props.searchList || []).map((v,k)=>{
                                         return (
                                             v.type === 'text' ?
-                                                <FormItem label={v.title}>
+                                                <FormItem label={v.title} key={k}>
                                                     <Input
-                                                        key={k}
                                                         placeholder={v.placeholder}
                                                         value={searchValues[v.dataKey] ? searchValues[v.dataKey] : (v.defaultValue || undefined)}
                                                         style={v.style ? v.style : { width: 150, marginRight: 10}}
@@ -227,8 +230,9 @@ class TabelContent extends Component{
                                                     />
                                                 </FormItem> :
                                                 v.type === 'autoComplete' ?
-                                                    <FormItem label={v.title} style={{marginTop:'-8px'}}>
+                                                    <FormItem label={v.title} style={{marginTop:'-8px'}} key={k}>
                                                         <AutoCompleteSearch
+                                                            ref={ref=>this.autoCompleteSearchRef[v.dataKey] = ref}
                                                             value={searchValues[v.dataKey]}
                                                             onSelect={(value,title)=>{
                                                                 searchValues[v.dataKey] = value
@@ -242,11 +246,10 @@ class TabelContent extends Component{
                                                     </FormItem>
                                                     :
                                                     v.type === 'select' || v.type === 'departmentSelect' ?
-                                                        <FormItem label={v.title} style={{marginTop:'-8px'}}>
+                                                        <FormItem label={v.title} style={{marginTop:'-8px'}} key={k}>
                                                             <Spin spinning={this.state.departmentLoading}>
                                                                 {
                                                                     <Select
-                                                                        key={k}
                                                                         placeholder={v.placeholder}
                                                                         style={v.style ? v.style : { width:200,marginRight: 10}}
                                                                         value={searchValues[v.dataKey] ? searchValues[v.dataKey] : (v.defaultValue || undefined)}
@@ -285,7 +288,7 @@ class TabelContent extends Component{
                                                                 }
                                                             </Spin>
                                                         </FormItem>: v.type === 'times' ?
-                                                        <FormItem label={v.title}>
+                                                        <FormItem label={v.title} key={k}>
                                                             {
                                                                 v.format === 'YYYY/MM' ?
                                                                     <MonthPicker

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

@@ -648,6 +648,15 @@ class Content extends Component {
                     });
                 });
                 break;
+            //高新复审总数
+            case 'reexamine':
+                require.ensure([], () => {
+                    const Reexamine = require('./operationalData/reexamine').default;
+                    this.setState({
+                        component: <Reexamine/>
+                    });
+                });
+                break;
             //签单统计表
             case 'signatureStatistics':
                 require.ensure([], () => {

+ 1 - 21
js/component/manageCenter/customer/operationalData/interviewStatistics/detailedList.jsx

@@ -254,26 +254,6 @@ class DetailedList extends Component{
                     dataKey:'depId',
                     placeholder:'请选择部门'
                 },
-                //0 总数量 1总金额 2总面谈
-                {
-                    type:'select',
-                    dataKey:'sort',
-                    placeholder:'请选择排序',
-                    selectList:[
-                        {
-                            value:'0',
-                            label:'按总数量排序'
-                        },
-                        {
-                            value:'1',
-                            label:'按总金额排序'
-                        },
-                        {
-                            value:'2',
-                            label:'按总面谈排序'
-                        },
-                    ]
-                },
                 {
                     type:'times',
                     title:'公出时间',
@@ -523,7 +503,7 @@ class DetailedList extends Component{
                             columns={this.state.columns}
                             searchConfig={this.props.searchConfig}
                             tabelApi={'/api/admin/provinceFollowStatisticsList'}
-                            exportApi={'/api/admin/provinceFollowStatisticsListExprot'}
+                            exportApi={'/api/admin/provinceFollowStatisticsListExport'}
                             query={{
                                 province:this.props.recordInfor.id,
                             }}

+ 9 - 4
js/component/manageCenter/customer/operationalData/receivablesStatistics/detailedList.jsx

@@ -178,9 +178,11 @@ class DetailedList extends Component{
                 placeholder:'请选择部门'
             },
             {
-                type:'text',
-                placeholder:'请输入催款人',
-                dataKey:'aName',
+                type:'autoComplete',
+                dataKey:'aid',
+                api:'/api/admin/customer/listAdminByName',
+                search:'adminName',
+                placeholder:'请输入催款人'
             },
             {
                 type:'select',
@@ -248,7 +250,10 @@ class DetailedList extends Component{
                     onOk={this.props.onCancel}
                     onCancel={this.props.onCancel}
                     width='1200px'
-                    title={this.props.recordInfor.provinceName + '签单统计表'}
+                    title={<span>
+                        {this.props.recordInfor.provinceName + '应收款详细'}
+                        <span style={{fontSize:'10px',color:'#0f2be5',marginLeft:'10px'}}>应收款:达到收款节点未收到的款</span>
+                    </span>}
                     footer=''
                     className="admin-desc-content">
                     <div className="user-content">

+ 1 - 3
js/component/manageCenter/customer/operationalData/receivablesStatistics/index.jsx

@@ -1,6 +1,4 @@
 import React,{ Component } from 'react';
-import {Select} from "antd";
-import { provinceList} from '@/NewDicProvinceList';
 import './index.less';
 import TabelContent from '../../../../common/tabelContent'
 
@@ -82,7 +80,7 @@ class ReceivablesStatistics extends Component{
             <div className="user-content receivablesStatistics">
                 <div className="content-title">
                     <span>
-                        全国应收款表
+                        全国应收款表<span style={{fontSize:'10px',color:'#0f2be5',marginLeft:'10px'}}>应收款:达到收款节点未收到的款</span>
                     </span>
                 </div>
                 <TabelContent

+ 418 - 0
js/component/manageCenter/customer/operationalData/reexamine/detailedList.jsx

@@ -0,0 +1,418 @@
+import React,{ Component } from 'react';
+import {
+    Modal,
+    Tooltip,
+} from "antd";
+import './index.less';
+import TabelContent from "../../../../common/tabelContent";
+import {
+    getApprovedState,
+    getLiquidationStatus,
+    getNewOrderStatus,
+    getProcessStatus,
+} from "../../../../tools";
+
+import Details from './details';
+
+class DetailedList 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: "name",
+                    key: "name",
+                    width: 320,
+                },
+                {
+                    title: "高新总数",
+                    dataIndex: "quantity",
+                    key: "quantity",
+                    width: 120,
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible1:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "已通过高新数",
+                    dataIndex: "pass",
+                    key: "pass",
+                    width: 120,
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible1:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "已签回",
+                    dataIndex: "signBacks",
+                    key: "signBacks",
+                    width: 120,
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible1:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+                {
+                    title: "未通过高新数",
+                    dataIndex: "notPass",
+                    key: "notPass",
+                    width: 120,
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible1:true,
+                            aid:record.aid
+                        })
+                    }
+                },
+            ],
+            columns1: [
+                {
+                    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: "depName",
+                    key: "depName",
+                },
+                {
+                    title: "下单时间",
+                    dataIndex: "createDate",
+                    key: "createTime",
+                },
+                {
+                    title: "合同签订时间",
+                    dataIndex: "signDate",
+                    key: "signDate",
+                },
+                {
+                    title: "流程状态",
+                    dataIndex: "processStatus",
+                    key: "processStatus",
+                    render: (text) => {
+                        return getProcessStatus(text);
+                    },
+                },
+                {
+                    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);
+                    },
+                },
+                {
+                    title: "是否特批",
+                    dataIndex: "approval",
+                    key: "approval",
+                    render: (text) => {
+                        return getApprovedState(text);
+                    },
+                },
+                {
+                    title: "订单状态",
+                    dataIndex: "orderStatus",
+                    key: "orderStatus",
+                    render: (text) => {
+                        return getNewOrderStatus(text);
+                    },
+                },
+                {
+                    title: "财务负责人",
+                    dataIndex: "financeName",
+                    key: "financeName",
+                },
+            ],
+            searchList:[
+            {
+                type:'departmentSelect',
+                dataKey:'depId',
+                placeholder:'请选择部门'
+            },
+            {
+                type:'autoComplete',
+                dataTitle:'aName',
+                dataKey:'aid',
+                api:'/api/admin/customer/listAdminByName',
+                search:'adminName',
+                placeholder:'请输入跟进人'
+            },
+            {
+                type:'select',
+                dataKey:'sort',
+                placeholder:'请选择排序',
+                selectList:[
+                    {
+                        value:'0',
+                        label:'按总金额排序'
+                    },
+                    {
+                        value:'1',
+                        label:'按数量排序'
+                    },
+                ]
+            },
+            {
+                type:'times',
+                title:'时间',
+                dataKey:['startDate','endDate'],
+            },
+        ],
+            searchList1:[
+                {
+                    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() {
+        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.state.searchList}
+                            columns={this.state.columns}
+                            searchConfig={this.props.searchConfig}
+                            onRowClick={()=>{}}
+                            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/orderProject/highNewRetrialList'}
+                            exportApi={'/api/admin/orderProject/highNewRetrialList/export'}
+                            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,
+                                aid:'',
+                            })
+                        }}
+                        onCancel={()=>{
+                            this.setState({
+                                visible1:false,
+                                aid:'',
+                            })
+                        }}
+                        width='1600px'
+                        title='客户订单列表'
+                        footer=''
+                        className="admin-desc-content">
+                        <div className="user-content">
+                            <TabelContent
+                                scroll={{ x: 1200 }}
+                                searchConfig={this.state.searchConfig}
+                                searchList={this.state.searchList1}
+                                columns={this.state.columns1}
+                                tabelApi={'/api/admin/newOrder/orderNewList'}
+                                query={{
+                                    aid:this.state.aid,
+                                    specially: 9,
+                                }}
+                                onRowClick={(obj)=>{
+                                    this.setState({
+                                        detailsVisible:true,
+                                        orderNo:obj.orderNo
+                                    })
+                                }}
+                                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>
+                {this.state.detailsVisible && <Details
+                    orderNo={this.state.orderNo}
+                    visible={this.state.detailsVisible}
+                    onCancel={()=>{
+                        this.setState({
+                            detailsVisible:false,
+                            orderNo:''
+                        })
+                    }}
+                />}
+            </div>
+        )
+    }
+}
+
+export default DetailedList;

+ 849 - 0
js/component/manageCenter/customer/operationalData/reexamine/details.jsx

@@ -0,0 +1,849 @@
+import React,{Component} from "react";
+import {Button, Form, message, Modal, Spin, Table, Tag} from "antd";
+import OrderItemStatus from "../../../../common/orderItemStatus";
+import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
+import {
+    getApprovedState,
+    getCuikuan,
+    getjiedian,
+    getLiquidationStatus,
+    getProcessStatus,
+    splitUrl
+} from "../../../../tools";
+import ImgList from "../../../../common/imgList";
+import $ from "jquery/src/ajax";
+import ProjectDetailsReadOnly from "../../../../common/projectDetailsReadOnly";
+import OrderRiZi from "@/orderRiZi.jsx";
+
+const FormItem = Form.Item;
+
+const formItemLayout = {
+    labelCol: { span: 8 },
+    wrapperCol: { span: 14 },
+};
+
+class Details extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading:false,
+            columnsX: [
+                {
+                    title: "业务项目名称",
+                    dataIndex: "commodityName",
+                    key: "commodityName",
+                    render: (text, record) => {
+                        return text + "-" + record.id
+                    }
+                },
+                {
+                    title: "项目类别",
+                    dataIndex: "cname",
+                    key: "cname",
+                },
+                {
+                    title: "项目数量",
+                    dataIndex: "commodityQuantity",
+                    key: "commodityQuantity",
+                    render: (text, record) => {
+                        if (record.splitStatus == 1) {
+                            return (
+                                <span>
+                    {text}{" "}
+                                    <Tag
+                                        color="#108ee9"
+                                        onClick={(e) => {
+                                            e.stopPropagation();
+                                            this.showRes(record);
+                                        }}
+                                    >
+                      已拆
+                    </Tag>
+                  </span>
+                            );
+                        } else {
+                            return text;
+                        }
+                    },
+                },
+                {
+                    title: "金额(万元)",
+                    dataIndex: "commodityPrice",
+                    key: "commodityPrice",
+                },
+                {
+                    title: "负责人",
+                    dataIndex: "contacts",
+                    key: "contacts",
+                },
+                {
+                    title: "负责人电话",
+                    dataIndex: "contactsMobile",
+                    key: "contactsMobile",
+                },
+                {
+                    title: "主要项目",
+                    dataIndex: "main",
+                    key: "main",
+                    render: (text) => {
+                        return text ? "是" : "否";
+                    },
+                },
+                {
+                    title: "项目说明",
+                    dataIndex: "taskComment",
+                    key: "taskComment",
+                    render: (text) => {
+                        return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
+                    },
+                },
+            ],
+            ContactsListsNew: [
+                {
+                    title: "项目名称",
+                    dataIndex: "commodityName",
+                    key: "commodityName",
+                    render: (text, record) => {
+                        return <span>{text + "-" + record.tid}</span>;
+                    },
+                },
+                {
+                    title: "项目分类",
+                    dataIndex: "projectType",
+                    key: "projectType",
+                    render: (text) => {
+                        let arr = this.state.dataSourceX || [];
+                        let str = "";
+                        for (let i = 0; i < arr.length; i++) {
+                            if (this.state.dataSourceX[i].sort == text) {
+                                str = this.state.dataSourceX[i].cname;
+                                return <span>{str}</span>;
+                            }
+                        }
+                    },
+                },
+                {
+                    title: "催款科目",
+                    dataIndex: "dunTypeName",
+                    key: "dunTypeName",
+                    render: (text, record) => {
+                        if (record.customizeName) {
+                            return text + record.customizeName;
+                        }
+                        return <span>{text}</span>;
+                    },
+                },
+                {
+                    title: "时间(天)",
+                    dataIndex: "waitDay",
+                    key: "waitDay",
+                    render: (text, record) => {
+                        if (record.dunTypeName) {
+                            if (record.customizeTimes) {
+                                return record.customizeTimes;
+                            }
+                            return <span>{text}</span>;
+                        }
+                    },
+                },
+                {
+                    title: "金额(万元)",
+                    dataIndex: "money",
+                    key: "money",
+                    render: (text, record) => {
+                        if (record.dunTypeName) {
+                            if (record.appropriationRatio) {
+                                return <span>{record.appropriationRatio}(拨款比例)</span>;
+                            } else {
+                                return <span>{text}</span>;
+                            }
+                        }
+                    },
+                },
+                {
+                    title: "服务年限",
+                    dataIndex: "startDate",
+                    key: "startDate",
+                    render: (text, record) => {
+                        if (record.dunTypeName) {
+                            return <span>{text}</span>;
+                        }
+                    },
+                },
+                {
+                    title: "催款状态",
+                    dataIndex: "status",
+                    key: "status",
+                    render: (text) => {
+                        return <span>{text == 1 ? "已启动" : "未启动"}</span>;
+                    },
+                },
+            ],
+            ContactsLists: [
+                {
+                    title: "催款科目",
+                    dataIndex: "dunSubject",
+                    key: "dunSubject",
+                    render: (text) => {
+                        return getjiedian(text);
+                    },
+                },
+                {
+                    title: "金额(万元)",
+                    dataIndex: "money",
+                    key: "money",
+                },
+                {
+                    title: "催款状态",
+                    dataIndex: "dunStatus",
+                    key: "dunStatus",
+                    render: (text) => {
+                        return getCuikuan(text);
+                    },
+                },
+            ],
+            dataSourceX:[],
+
+            contactList:[],
+
+            dataInfor:{},
+
+            totalCui:'',
+
+            dataSourcerizhi:[]
+        }
+        this.xiangqing = this.xiangqing.bind(this);
+        this.xiangmu = this.xiangmu.bind(this);
+        this.nextCancel = this.nextCancel.bind(this);
+        this.jiedianNew = this.jiedianNew.bind(this);
+        this.jiedian = this.jiedian.bind(this);
+        this.tableRowClickX = this.tableRowClickX.bind(this);
+        this.getOrderLog = this.getOrderLog.bind(this);
+        this.closeOrderLog = this.closeOrderLog.bind(this);
+        this.rizhi = this.rizhi.bind(this);
+    }
+
+    componentDidMount() {
+        this.xiangqing();
+        this.xiangmu();
+        this.jiedian();
+        this.jiedianNew();
+    }
+
+    //订单详情
+    xiangqing() {
+        this.setState({
+            loading: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
+            data: {
+                orderNo: this.props.orderNo,
+            },
+            success: function (data) {
+                if(data.error.length){
+                    message.warning(data.error[0].message);
+                }else{
+                    let thisdata = data.data;
+                    this.setState({
+                        orderUid: thisdata.uid,
+                        orderNo: thisdata.orderNo, //订单编号
+                        contractNo: thisdata.contractNo, //合同编号
+                        userName: thisdata.userName, //客户名称
+                        signDate: thisdata.signDate, //签单时间
+                        processStatus: thisdata.processStatus, //流程状态
+                        liquidationStatus: thisdata.liquidationStatus, //结算状态
+                        contacts: thisdata.contacts, //企业联系人
+                        contactMobile: thisdata.contactMobile, //联系人电话
+                        legalPerson: thisdata.legalPerson, //法人
+                        legalPersonTel: thisdata.legalPersonTel, //法人电话
+                        firstAmount: thisdata.firstAmount, //签单金额
+                        totalAmount: thisdata.totalAmount, //首付金额
+                        approval: thisdata.approval, //特批状态
+                        settlementAmount: thisdata.settlementAmount, //已收款项
+                        orderRemarks: thisdata.orderRemarks, //订单留言
+                        orgCodeUrl: thisdata.contractPictureUrl
+                            ? splitUrl(
+                                thisdata.contractPictureUrl,
+                                ",",
+                                globalConfig.avatarHost + "/upload"
+                            )
+                            : [], //图片地址
+                        replenishUrl: thisdata.agreementUrl
+                            ? splitUrl(
+                                thisdata.agreementUrl,
+                                ",",
+                                globalConfig.avatarHost + "/upload"
+                            )
+                            : [], //图片地址
+                        salesmanName: thisdata.salesmanName, //营销员名称
+                        salesmanMobile: thisdata.salesmanMobile, //营销员电话
+                        oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
+                        oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
+                        financeName: thisdata.financeName, //财务名称
+                        financeMobile: thisdata.financeMobile, //财务电话
+                        nowFinance: thisdata.nowFinance, //财务名称
+                        nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
+                        depName: thisdata.depName,
+                        outsource: thisdata.outsource == 0 ? "否" : "是",
+                        deleteSign:thisdata.deleteSign,
+                    });
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    //项目列表
+    xiangmu() {
+        this.setState({
+            xiangmuLoading: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
+            data: {
+                orderNo: this.props.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                if (data.error.length || data.data.list == "") {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        let thisdata = data.data[i];
+                        thisdata.key = i;
+                        thisdata.sort = thisdata.cSort;
+                        theArr.push(thisdata);
+                    }
+                }
+                this.setState({
+                    dataSourceX: theArr,
+                });
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    xiangmuLoading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    //点击打卡项目详情
+    tableRowClickX(record) {
+        this.setState({
+            addnextVisible: true,
+            dataInfor:record,
+        });
+    }
+
+    //项目详情关闭
+    nextCancel() {
+        this.setState({
+            addnextVisible: false,
+            dataInfor:{},
+        });
+    }
+
+    //节点列表
+    jiedian() {
+        this.setState({
+            jiedianLoading: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
+            data: {
+                orderNo: this.props.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                let thisData = [];
+                if (data.error.length || data.data.list == "") {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        thisData = data.data[i];
+                        theArr.push({
+                            key: i,
+                            dunSubject: thisData.dunSubject
+                                ? thisData.dunSubject.toString()
+                                : "", //催款科目
+                            id: thisData.id, //节点Id
+                            money: thisData.money, //催款金额
+                            dunStatus: thisData.dunStatus, //催款状态
+                        });
+                    }
+                    this.setState({
+                        contactList: theArr,
+                    });
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    jiedianLoading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    //查看催款节点
+    jiedianNew() {
+        this.setState({
+            jiedianNewLoading: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url:
+                globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
+            data: {
+                orderNo: this.props.orderNo,
+            },
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    let theArr = [];
+                    let thisData = [];
+                    let arr = data.data || [];
+                    let totalCui = 0;
+                    for (let i = 0; i < arr.length; i++) {
+                        thisData = arr[i];
+                        totalCui += +thisData.money;
+                        theArr.push({
+                            key: i,
+                            dunSubject: thisData.dunSubject
+                                ? thisData.dunSubject.toString()
+                                : "", //催款科目
+                            id: thisData.id, //节点Id
+                            money: thisData.money, //催款金额
+                            // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
+                            commodityName: thisData.commodityName,
+                            projectType: thisData.projectType,
+                            dunTypeName: thisData.dunTypeName,
+                            status: thisData.status,
+                            waitDay: thisData.waitDay,
+                            effectiveCount: thisData.effectiveCount,
+                            startDate: thisData.startDate,
+                            dunType: thisData.dunType,
+                            appropriationRatio: thisData.appropriationRatio,
+                            customizeName: thisData.customizeName,
+                            customizeTimes: thisData.customizeTimes,
+                            tid: thisData.tid,
+                        });
+                    }
+                    if (!totalCui) {
+                        totalCui = 0;
+                    }
+                    totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
+                    this.setState({
+                        contactListNew: theArr,
+                        totalCui,
+                    });
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    jiedianNewLoading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    //查看订单日志
+    getOrderLog() {
+        this.setState({
+            rizhivisible: true,
+        });
+        this.rizhi();
+    }
+
+    closeOrderLog() {
+        this.setState({
+            rizhivisible: false,
+            dataSourcerizhi:[]
+        });
+    }
+
+    rizhi() {
+        this.setState({
+            rizhiLoading: true,
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: "/api/admin/newOrder/selectOrderLog",
+            data: {
+                orderNo: this.props.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                let thisData = data.data;
+                if (!thisData.length) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        let thisdata = data.data[i];
+                        theArr.push({
+                            processName: thisdata.processName,
+                            adminName: thisdata.adminName,
+                            createDate: thisdata.createDate,
+                            remarks: thisdata.remarks,
+                        });
+                    }
+                }
+                this.setState({
+                    dataSourcerizhi: theArr,
+                });
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    rizhiLoading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    render() {
+        return (
+            <Modal
+                className="customeDetails"
+                footer=""
+                title="订单详情"
+                width="900px"
+                visible={this.props.visible}
+                onOk={this.props.onCancel}
+                onCancel={this.props.onCancel}
+            >
+                <Form layout="horizontal" id="demand-form" style={{ paddingBottom: "40px" }}>
+                    <Spin spinning={this.state.loading}>
+                        <div className="clearfix">
+                            <div style={{position:"absolute",top:'-52px',left:'81px',zIndex:10000}}>
+                                <OrderItemStatus deleteSign={this.state.deleteSign}/>
+                            </div>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="订单编号"
+                            >
+                                <span>{this.state.orderNo}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="合同编号"
+                            >
+                                <span>{this.state.contractNo}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="客户名称"
+                            >
+                                <span>{this.state.userName}</span>
+                                <EnterpriseNameChange
+                                    type='journal'
+                                    style={{ marginLeft: 10 }}
+                                    enterpriseId={this.state.orderUid}/>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="合同签订时间"
+                            >
+                                <span>{this.state.signDate}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="流程状态"
+                            >
+                                <span>{getProcessStatus(this.state.processStatus)}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="结算状态"
+                            >
+                      <span>
+                        {getLiquidationStatus(this.state.liquidationStatus)}
+                      </span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="企业联系人"
+                            >
+                                <span>{this.state.contacts}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="联系人电话"
+                            >
+                                <span>{this.state.contactMobile}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="企业法人"
+                            >
+                                <span>{this.state.legalPerson}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="法人电话"
+                            >
+                                <span>{this.state.legalPersonTel}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="签单金额(万元)"
+                            >
+                                <span>{this.state.totalAmount}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="首付金额(万元)"
+                            >
+                                <span>{this.state.firstAmount}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="特批立项"
+                            >
+                                <span>{getApprovedState(this.state.approval)}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="已收款项(万元)"
+                            >
+                                <span>{this.state.settlementAmount}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="订单部门"
+                            >
+                                <span>{this.state.depName}</span>
+                            </FormItem>
+                            <FormItem
+                                className="half-item"
+                                {...formItemLayout}
+                                label="是否外包"
+                            >
+                                {this.state.outsource}
+                            </FormItem>
+                            <div className="clearfix">
+                                <FormItem
+                                    labelCol={{ span: 4 }}
+                                    wrapperCol={{ span: 16 }}
+                                    label="订单留言"
+                                >
+                                    <span>{this.state.orderRemarks}</span>
+                                </FormItem>
+                            </div>
+                            <div className="clearfix">
+                                <FormItem
+                                    labelCol={{ span: 4 }}
+                                    wrapperCol={{ span: 18 }}
+                                    label={"合同扫描件"}
+                                >
+                                    <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
+                                        {this.props.visible && this.state.orgCodeUrl ? <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'}/> : <div/>}
+                                    </div>
+                                    <Button
+                                        style={{
+                                            float: "right",
+                                            marginRight: "140px",
+                                            marginTop: "20px",
+                                        }}
+                                        onClick={this.getOrderLog}
+                                    >
+                                        查看订单 日志
+                                    </Button>
+                                </FormItem>
+                                <FormItem
+                                    labelCol={{ span: 4 }}
+                                    wrapperCol={{ span: 18 }}
+                                    label="补充协议"
+                                >
+                                    <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
+                                        {this.props.visible && this.state.replenishUrl ? <ImgList domId={'inquiry1'} fileList={this.state.replenishUrl} ItemWidth={'96px'}/> : <div/>}
+                                    </div>
+                                </FormItem>
+                            </div>
+                            <div className="clearfix">
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    label="订单负责人"
+                                >
+                                    <span>{this.state.salesmanName}</span>
+                                </FormItem>
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    label="订单负责人电话"
+                                >
+                                    <span>{this.state.salesmanMobile}</span>
+                                </FormItem>
+                            </div>
+                            <div className="clearfix">
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    label="当前财务负责人"
+                                >
+                                    <span>{this.state.nowFinance}</span>
+                                </FormItem>
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    label="当前财务负责人电话"
+                                >
+                                    <span>{this.state.nowFinanceMobile}</span>
+                                </FormItem>
+                            </div>
+                            <div className="clearfix">
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    style={{ opacity: ".5" }}
+                                    label="原订单负责人"
+                                >
+                                    <span>{this.state.oldSalesmanName}</span>
+                                </FormItem>
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    style={{ opacity: ".5" }}
+                                    label="原订单负责人电话"
+                                >
+                                    <span>{this.state.oldSalesmanMobile}</span>
+                                </FormItem>
+                            </div>
+                            <div className="clearfix">
+                                <FormItem
+                                    className="half-item"
+                                    style={{ opacity: ".5" }}
+                                    {...formItemLayout}
+                                    label="实际财务操作人"
+                                >
+                                    <span>{this.state.financeName}</span>
+                                </FormItem>
+                                <FormItem
+                                    className="half-item"
+                                    {...formItemLayout}
+                                    style={{ opacity: ".5" }}
+                                    label="实际财务操作人电话"
+                                >
+                                    <span>{this.state.financeMobile}</span>
+                                </FormItem>
+                            </div>
+                            <div>
+                            <span style={{ marginLeft: "50px", fontSize: "20px" }}>
+                              项目业务
+                            </span>
+                            </div>
+                            <div className="patent-table">
+                                <Spin spinning={this.state.xiangmuLoading}>
+                                    <Table
+                                        columns={this.state.columnsX}
+                                        dataSource={this.state.dataSourceX}
+                                        pagination={false}
+                                        onRowClick={this.tableRowClickX}
+                                        bordered
+                                        size="small"
+                                    />
+                                </Spin>
+                            </div>
+                            <div>
+                                <span style={{ marginLeft: "50px", fontSize: "20px" }}>
+                                  催款节点
+                                </span>
+                                <span
+                                    style={{
+                                        display: this.state.contactList.length ? "none" : "inline-block",
+                                        marginLeft: 10,
+                                        color: "red",
+                                    }}
+                                >
+                                 金额总计(万元): {this.state.totalCui}
+                                </span>
+                            </div>
+                            <div className="clearfix">
+                                <Spin spinning={
+                                    this.state.contactList.length ?
+                                        this.state.jiedianLoading :
+                                        this.state.jiedianNewLoading
+                                }>
+                                    <Form layout="horizontal" id="demand-form">
+                                        <Table
+                                            pagination={false}
+                                            bordered
+                                            size="small"
+                                            columns={
+                                                this.state.contactList.length
+                                                    ? this.state.ContactsLists
+                                                    : this.state.ContactsListsNew
+                                            }
+                                            dataSource={
+                                                this.state.contactList.length
+                                                    ? this.state.contactList
+                                                    : this.state.contactListNew
+                                            }
+                                        />
+                                    </Form>
+                                </Spin>
+                            </div>
+                        </div>
+                    </Spin>
+                </Form>
+                <OrderRiZi
+                    dataSourcerizhi={this.state.dataSourcerizhi}
+                    closeOrderLog={this.closeOrderLog}
+                    visible={this.state.rizhivisible}
+                    loading={this.state.rizhiLoading}
+                />
+                {this.state.addnextVisible && <ProjectDetailsReadOnly
+                    infor={this.state.dataInfor}
+                    visible={this.state.addnextVisible}
+                    onCancel={this.nextCancel}
+                />}
+            </Modal>
+        )
+    }
+}
+
+export default Details;

+ 149 - 0
js/component/manageCenter/customer/operationalData/reexamine/index.jsx

@@ -0,0 +1,149 @@
+import React,{ Component } from 'react';
+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',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible:true,
+                            recordInfor:record
+                        })
+                    }
+                },
+                {
+                    title: "已通过高新数",
+                    dataIndex: "pass",
+                    key: "pass",
+                    width: 120,
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible:true,
+                            recordInfor:record
+                        })
+                    }
+                },
+                {
+                    title: "已签回",
+                    dataIndex: "signBacks",
+                    key: "signBacks",
+                    width: 120,
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible:true,
+                            recordInfor:record
+                        })
+                    }
+                },
+                {
+                    title: "未通过高新数",
+                    dataIndex: "notPass",
+                    key: "notPass",
+                    width: 120,
+                    className: 'projectTable',
+                    onCellClick :(record, event)=>{
+                        event.stopPropagation();
+                        this.setState({
+                            visible:true,
+                            recordInfor:record
+                        })
+                    }
+                },
+            ],
+            searchConfig:{}
+        }
+    }
+
+    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 style={{fontSize:'10px',color:'#0f2be5',marginLeft:'10px'}}>需复审已下证的企业</span>
+                    </span>
+                </div>
+                <TabelContent
+                    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/orderProject/highNewRetrialStatistics'}
+                    exportApi={'/api/admin/orderProject/highNewRetrialStatistics/export'}
+                    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
+                    searchConfig={this.state.searchConfig}
+                    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/reexamine/index.less

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

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "afanti",
-  "version": "1.1.95",
+  "version": "1.1.96",
   "description": "",
   "main": "index.js",
   "scripts": {