Przeglądaj źródła

财务审核付款列表

mentoswzq 4 lat temu
rodzic
commit
3072082ffb

+ 46 - 6
js/component/manageCenter/components/checkProject/index.jsx

@@ -13,6 +13,7 @@ import {
 import {getProjectStatus,} from '@/tools'
 import { getMaterialStatus, getUrgentStatus } from '@/tools'
 import ApplyPaymentModal from './applyPaymentModal';
+import PayRecord from './payRecord';
 import './index.less'
 import $ from "jquery";
 
@@ -24,6 +25,8 @@ class CheckProject extends Component {
       loading: false,
       previewImage: '',
       previewVisible: false,
+      payRecordVisible: false,
+      orderPaymentsId: 0,
       previewPayVisible: false,
       previewPayInfor: {},        //点击申请付款的第三方信息或者支付节点信息
       nodeId: 0,
@@ -296,6 +299,18 @@ class CheckProject extends Component {
     )
   }
 
+  operationJudgmentName(id) {
+    if(this.props.isAuditPayment){          //财务
+      return id === 0 ? '查看详情' :
+          id === 1 ? '修改申请' :
+              id === 2 ? '查看详情' : '查看详情'
+    }else{
+      return id === 0 ? '待审核' :
+          id === 1 ? '查看详情' :
+              id === 2 ? '待支付' : '查看详情'
+    }
+  }
+
   render() {
     return (
       <div className="App">
@@ -489,7 +504,7 @@ class CheckProject extends Component {
           <div className="outsourceLogList" style={{paddingTop:'20px'}}>
             {
               this.state.selectOrderPayments.map((value,index)=>(
-                  <div key={index} className="outsourceLogItem">
+                  <div key={index} className="orderPayItem">
                     <Row gutter={16}>
                       <Col className="gutter-row" span={4}>
                         <div className="gutter-box">
@@ -516,14 +531,22 @@ class CheckProject extends Component {
                           {value.createTimes}
                         </div>
                       </Col>
-                      <Col className="gutter-row" span={4}>
-                        <div className="gutter-box">
+                      <Col className="operationItem" span={4}>
+                        <div className="operation">
                           {
-                            value.status === 0 ? '审核' :
-                                value.status === 1 ? '驳回' :
-                                    value.status === 2 ? '待支付' : '支付'
+                            value.status === 0 ? '审核' :
+                                value.status === 1 ? '驳回' :
+                                    value.status === 2 ? '待支付' : '支付完成'
                           }
                         </div>
+                        <Button type="primary" size='small' onClick={()=>{
+                            this.setState({
+                                payRecordVisible: true,
+                                orderPaymentsId: value.id,
+                            })
+                        }}>
+                          {this.operationJudgmentName(value.status)}
+                        </Button>
                       </Col>
                     </Row>
                   </div>
@@ -554,6 +577,23 @@ class CheckProject extends Component {
                 previewPayInfor: {},
               })
             }}/>
+          {/*  支付记录操作弹出  */}
+          {this.state.payRecordVisible ? <PayRecord
+                {...this.props}
+                tid={this.props.tid}
+                payId={this.state.orderPaymentsId}
+                visible={this.state.payRecordVisible}
+                isAuditPayment={this.props.isAuditPayment}
+                onRefresh={()=>{
+                    this.props.onRefresh();
+                    this.getSelectOrderPayment();
+                }}
+                changeVisible={()=>{
+                    this.setState({
+                        payRecordVisible: false,
+                    })
+                }}
+            /> : <div/>}
       </div>
     )
   }

+ 30 - 0
js/component/manageCenter/components/checkProject/index.less

@@ -31,6 +31,20 @@
       .outsourceLogItem{
         padding-bottom: 10px;
       }
+      .orderPayItem{
+        padding-bottom: 10px;
+      }
+      .orderPayItem :hover{
+        cursor: pointer;
+      }
+      .operationItem{
+        display: flex;
+        flex-flow: row nowrap;
+        align-items: center;
+        .operation{
+          padding-right: 15px;
+        }
+      }
     }
   }
   .title{
@@ -39,6 +53,22 @@
   }
 }
 
+.payStateList{
+  display: flex;
+  flex-flow: row nowrap;
+  border-top: 1px #000 dashed;
+  .listTitle{
+    font-weight: bolder;
+    padding-bottom: 20px;
+  }
+  .payList{
+    padding-left: 20px;
+    .payitem{
+      padding-bottom: 10px;
+    }
+  }
+}
+
 #components-form-demo-normal-login .login-form-forgot {
   float: left;
 }

+ 416 - 0
js/component/manageCenter/components/checkProject/payRecord.js

@@ -0,0 +1,416 @@
+import React,{Component} from 'react';
+import {Button, Form, Input, message, Modal, Spin} from "antd";
+import $ from "jquery/src/ajax";
+
+const layout = {
+    labelCol: {
+        span: 8,
+    },
+    wrapperCol: {
+        span: 16,
+    },
+};
+
+const formItemLayout = {
+    labelCol: { span: 8 },
+    wrapperCol: { span: 14 },
+};
+
+class PayRecord extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: false,
+            paymentLogs: [],
+            paymentDetails: {},
+            financialPaymentList: [],
+        }
+        this.examineOperation = this.examineOperation.bind(this);
+        this.noExamineOperation = this.noExamineOperation.bind(this);
+    }
+
+    componentDidMount() {
+      this.getSelectPaymentLog();       //付款日志
+      this.getPaymentDetails();         //支付详情
+      this.getSelectfinancialPayment(); //财务付款列表
+    }
+
+    //付款日志
+    getSelectPaymentLog(){
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            type: 'get',
+            cache: false,
+            url: globalConfig.context + "/api/admin/company/selectPaymentLog",
+            dataType: "json",
+            data: {
+                id: this.props.payId
+            },
+            success: function (data) {
+                this.setState({
+                    loading: false
+                });
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    this.setState({
+                        paymentLogs: data.data
+                    })
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    }
+
+    //支付详情
+    getPaymentDetails(){
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            type: 'get',
+            cache: false,
+            url: globalConfig.context + "/api/admin/company/OrderPaymentDetails",
+            dataType: "json",
+            data: {
+                id: this.props.payId
+            },
+            success: function (data) {
+                this.setState({
+                    loading: false
+                });
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    this.setState({
+                        paymentDetails: data.data
+                    })
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    }
+
+    //财务付款列表
+    getSelectfinancialPayment(){
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            type: 'get',
+            cache: false,
+            url: globalConfig.context + "/api/admin/company/selectfinancialPayment",
+            dataType: "json",
+            data: {
+                id: this.props.payId
+            },
+            success: function (data) {
+                this.setState({
+                    loading: false
+                });
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    this.setState({
+                        financialPaymentList: data.data
+                    })
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    }
+
+    handleSubmit(e,status = 0){
+        e.preventDefault();
+        this.props.form.validateFieldsAndScroll((err, values) => {
+            if (err) {
+                return;
+            }
+            const { paymentDetails } = this.state;
+            this.setState({
+                loading: true
+            })
+            let data = {
+                id: this.props.payId,
+                paymentAmount: paymentDetails.paymentAmount,
+                paymentStatus: paymentDetails.paymentStatus,
+                status: status,//0 发起 1通过 2驳回(0重新发起,1通过审核,2驳回)
+            }
+            Object.assign(data,values)
+            $.ajax({
+                type: 'post',
+                url: globalConfig.context + "/api/admin/company/updateOrderPayment",
+                dataType: "json",
+                data: data,
+            }).done((res) => {
+                if (res.error && res.error.length) {
+                    message.error(res.error[0].message);
+                } else {
+                    message.success("重新申请成功");
+                }
+            }).always(() => {
+                this.setState({
+                    loading: false
+                })
+            });
+        })
+    }
+
+    //新增财务付款
+    addfinancialPayment(e) {
+        e.preventDefault();
+        this.props.form.validateFieldsAndScroll((err, values) => {
+            if (err) {
+                return;
+            }
+            const { paymentDetails } = this.state;
+            this.setState({
+                loading: true
+            })
+            let data = {
+                pid: this.props.payId,
+                partyAmount: values.partyAmount,
+                paymentTimes: values.paymentTimes
+            }
+            $.ajax({
+                type: 'post',
+                url: globalConfig.context + "/api/admin/company/addfinancialPayment",
+                dataType: "json",
+                data: data,
+            }).done((res) => {
+                if (res.error && res.error.length) {
+                    message.error(res.error[0].message);
+                } else {
+                    message.success("新增成功");
+                }
+            }).always(() => {
+                this.setState({
+                    loading: false
+                })
+            });
+        })
+    }
+
+    //0审核 1驳回 2待支付 3已支付 4取消
+    noExamineOperation(){
+        return (
+            this.state.paymentDetails.status === 1 ? <Form.Item>
+                <Button type="primary" htmlType="submit">
+                    重新发起申请
+                </Button>
+            </Form.Item> : <div/>
+        )
+    }
+
+    examineOperation() {
+        const { getFieldDecorator } = this.props.form;
+        return (
+            this.state.paymentDetails.status === 0 ? <Form.Item>
+                {getFieldDecorator('remarks', {
+                    rules: [{ required: true, message: '请输入备注!' }],
+                })(
+                    <Input style={{ width: '200px' }} placeholder="请输入备注" type={'textarea'}/>
+                )}
+                <Button type="primary" onClick={(e)=>{
+                    this.handleSubmit(e,2);
+                }}>
+                    驳回
+                </Button>
+                <Button type="primary" onClick={(e)=>{
+                    this.handleSubmit(e,1);
+                }}>
+                    通过
+                </Button>
+            </Form.Item> : this.state.paymentDetails.status === 2 ?
+                <div>
+                    <Form.Item label="付款时间:">
+                        {getFieldDecorator('remarks', {
+                            rules: [{ required: true, message: '请输入付款时间!' }],
+                        })(
+                            <Input style={{ width: '100px' }} placeholder="请输入付款时间" type={'number'}/>
+                        )}
+
+                    </Form.Item>
+                    <Form.Item label="付款金额(万元):">
+                        {getFieldDecorator('remarks', {
+                            rules: [{ required: true, message: '请输入付款金额!' }],
+                        })(
+                            <Input style={{ width: '100px' }} placeholder="请输入付款金额" type={'time'}/>
+                        )}
+
+                    </Form.Item>
+                    <Button type="primary" onClick={(e)=>{
+                        this.addfinancialPayment(e)
+                    }}>
+                        保存
+                    </Button>
+                </div> : <div/>
+        )
+    }
+
+    render() {
+        const { getFieldDecorator } = this.props.form;
+        const { paymentLogs,paymentDetails,financialPaymentList } = this.state;
+        return(
+            <Modal
+                maskClosable={false}
+                footer={null}
+                visible={this.props.visible}
+                onCancel={() => {
+                    this.props.changeVisible();
+                }}
+            >
+                <Spin spinning={this.state.loading}>
+                    <div>
+                        <div>申请支付外包费用</div>
+                        <Form
+                            {...layout}
+                            name="basic"
+                            initialValues={{
+                                remember: true,
+                            }}
+                            onSubmit={(e)=>{
+                                this.handleSubmit(e)
+                            }}
+                        >
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="付款单位/个人:"
+                            >
+                                <div>{paymentDetails.companyName}</div>
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="单价(万元):"
+                            >
+                                <div>{paymentDetails.nodeUnitPrice}</div>
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="数量:"
+                            >
+                                {getFieldDecorator('quantity', {
+                                    initialValue: parseInt(paymentDetails.quantity),
+                                    rules: [{ required: false, message: '请输入數量!' }],
+                                })(
+                                    <Input disabled={paymentDetails.quantity <= 1 || this.state.paymentDetails.status > 1} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
+                                )}
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="总价(万元):"
+                            >
+                                <div>{paymentDetails.nodeTotalAmount}</div>
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="已付(万元):"
+                            >
+                                <div>{paymentDetails.nodePartyAmount}</div>
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="本次申请支付金额(万元):"
+                            >
+                                {getFieldDecorator('applicationAmount', {
+                                    initialValue: paymentDetails.applicationAmount,
+                                    rules: [{ required: true, message: '请输入本次申请支付金额!' }],
+                                })(
+                                    <Input disabled={this.state.paymentDetails.status > 1} style={{ width: '200px' }} placeholder="请输入本次申请支付金额" type={'number'}/>
+                                )}
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="备注:"
+                            >
+                                <div>{paymentDetails.remarks}</div>
+                            </Form.Item>
+                            <div className='payStateList'>
+                                <div className='listTitle'>
+                                    支付状态
+                                </div>
+                                <div className='payList'>
+                                    {
+                                        paymentLogs.map((value,key)=>(
+                                            <div key={key} className='payitem' style={{color:key === 0 ? '#f00' : '#000'}}>
+                                                {value.aname+':'}
+                                                {
+                                                    value.status === 0 ? '(发起)'+value.remarks :
+                                                        value.status === 1 ? '(通过)'+value.remarks : '(驳回)'+value.remarks
+                                                }
+                                                {
+                                                    value.createTimes
+                                                }
+                                            </div>
+                                        ))
+                                    }
+                                </div>
+                            </div>
+                            {paymentDetails.status === 2 ||  paymentDetails.status === 3 ||  paymentDetails.status === 4 ?<div className='payStateList'>
+                                <div className='listTitle' style={{display:'block',fontSize:'15px'}}>
+                                    上传付费凭证-财务
+                                    <span style={{fontSize:'10px',paddingLeft:'10px'}}>实际付款(万元): {paymentDetails.paymentAmount}</span>
+                                </div>
+                                <div className='payList'>
+                                    {
+                                        financialPaymentList.map((value,key)=>(
+                                            <div key={key} className='payitem' style={{color:key === 0 ? '#f00' : '#000'}}>
+                                                付款时间: {value.paymentTimes}
+                                                <span style={{paddingLeft:'25px'}}>付款金额(万元): {value.partyAmount}</span>
+                                            </div>
+                                        ))
+                                    }
+                                </div>
+                            </div> : <div/>}
+                            {
+                                this.props.isAuditPayment ? this.examineOperation() : this.noExamineOperation()
+                            }
+                        </Form>
+                    </div>
+                </Spin>
+            </Modal>
+        )
+    }
+}
+
+const WrappedNormalLoginForm = Form.create()(PayRecord);
+
+export default WrappedNormalLoginForm

+ 8 - 0
js/component/manageCenter/financialManage/content.jsx

@@ -256,6 +256,14 @@ class Content extends Component {
           });
         });
         break;
+      case "costAuditList":
+        require.ensure([], () => {
+          const CostAuditList = require("../order/orderNew/costAuditList").default;
+          this.setState({
+            component: <CostAuditList />,
+          });
+        });
+        break;
       default:
         require.ensure([], () => {
           let Module = require("../module").default;

+ 253 - 0
js/component/manageCenter/order/orderNew/costAuditList/detailsModal/index.js

@@ -0,0 +1,253 @@
+import React,{Component} from 'react';
+import {Form, message, Modal, Tabs} from "antd";
+import ProjectOverview from './projectOverview'
+import {splitUrl} from '@/tools'
+import CheckProject from "../../../../components/checkProject";
+import $ from "jquery";
+
+const { TabPane } = Tabs
+
+class DetailsModal extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: false,
+            activeKey:'1',
+            paySubject: [],
+        }
+        this.visitCancel = this.visitCancel.bind(this);
+    }
+
+    componentDidMount() {
+        if(this.props.tid){
+            this.waiDetail();
+            this.thirdTable(this.props.tid);
+            this.payNodeTable(this.props.tid)
+        }
+    }
+
+    visitOk(){
+
+    }
+
+    visitCancel(){
+        this.props.visitCancel();
+    }
+
+    waiDetail() {
+        let url = window.location.href.substring(7)
+        this.setState({
+            loading: true,
+        })
+        $.ajax({
+            method: 'get',
+            dataType: 'json',
+            crossDomain: false,
+            url:
+                globalConfig.context + '/api/admin/outsourceOrg/orderOutsourceDtails',
+            data: {
+                tid: this.props.tid,
+                orderNo: this.props.orderNo,
+            },
+        }).done(
+            function (data) {
+                this.setState({
+                    loading: false,
+                })
+                if (!data.error.length && data.data) {
+                    this.setState({
+                        startType: data.data.startType, //类型
+                        outsourceRemarks: data.data.outsourceRemarks,
+                        refundStatus: data.data.refundStatus,
+                        pictureUrl: data.data.pictureUrl
+                            ? splitUrl(
+                                data.data.pictureUrl,
+                                ',',
+                                globalConfig.avatarHost + '/upload',
+                                url
+                            )
+                            : [], //图片地址
+                    })
+                } else if (data.error && data.error.length) {
+                    message.warning(data.error[0].message)
+                } else if (!data.data) {
+                    this.setState({
+                        refundStatus: undefined,
+                    })
+                }
+            }.bind(this)
+        )
+    }
+
+    //查看第三方信息表格
+    thirdTable(id) {
+        this.setState({
+            loadData: true,
+        })
+        $.ajax({
+            method: 'get',
+            dataType: 'json',
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/company/selectCompany',
+            data: {
+                tid: id,
+            },
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message)
+                } else {
+                    let companyNameArr = []
+                    let theArr = []
+                    let thisData = []
+                    let arr = data.data || []
+                    let allTotalAmount = 0
+                    for (let i = 0; i < arr.length; i++) {
+                        thisData = arr[i]
+                        allTotalAmount =
+                            (allTotalAmount * 10000 + thisData.totalAmount * 10000) / 10000
+                        companyNameArr.push(thisData.companyName)
+                        theArr.push({
+                            key: i,
+                            id: thisData.id, //节点Id
+                            tid: thisData.tid,
+                            companyName: thisData.companyName, //供应商名称
+                            unitPrice: thisData.unitPrice, //单价
+                            quantity: thisData.quantity, //数量
+                            totalAmount: thisData.totalAmount, //总价
+                            material: thisData.material, //材料 0无 1有
+                            urgent: thisData.urgent, //	0无加急(系统默认)1加急3天 2加急4天 3加急5-10天 4加急11-15天 5加急16-20天 6加急21-25天 7加急26-30天
+                            audit: thisData.audit, //0无审计 1年审 2专审
+                            assets: thisData.assets, //资产
+                            income: thisData.income, //收入
+                            remarks: thisData.remarks, //备注
+                            cid: thisData.cid, //机构id
+                        })
+                    }
+                    if (!allTotalAmount) {
+                        allTotalAmount = 0
+                    }
+                    console.log(theArr)
+                    console.log(companyNameArr)
+
+                    this.setState({
+                        thirdInfoList: theArr,
+                        allTotalAmount: allTotalAmount,
+                    })
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                })
+            }.bind(this)
+        )
+    }
+
+    payNodeTable(id) {
+        this.setState({
+            loadData: true,
+        })
+        $.ajax({
+            method: 'get',
+            dataType: 'json',
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/company/selectPaymentNode',
+            data: {
+                tid: id,
+            },
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message)
+                } else {
+                    let payNodeArr = []
+                    let thisData = []
+                    let arr = data.data || []
+                    // console.log('this.state.paySubject', this.state.paySubject)
+                    //对#5283自定义的补充展示
+                    this.state.paySubject.push({ key: '自定义', value: '0' })
+                    for (let i = 0; i < arr.length; i++) {
+                        thisData = arr[i]
+                        //遍历paySubject,获取当前dunType对应的key
+                        this.state.paySubject.map((item) => {
+                            if (item.value == thisData.dunType) {
+                                thisData.dunType = item.key
+                            }
+                        })
+                        payNodeArr.push({
+                            key: i,
+                            id: thisData.id, //付款节点Id
+                            tid: thisData.tid,
+                            companyName: thisData.companyName, //供应商名称
+                            projectType: thisData.projectType, //项目分类
+                            dunType: thisData.dunType, //催款分类
+                            unitPrice: thisData.unitPrice, //单价
+                            quantity: thisData.quantity, //数量
+                            totalAmount: thisData.totalAmount, //总价
+                            partyAmount: thisData.partyAmount, //付款
+                            partyTimes: thisData.partyTimes, //付款时间
+                            cid: thisData.cid, //机构id
+                        })
+                    }
+                    this.setState({
+                        payNodeList: payNodeArr,
+                    })
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                })
+            }.bind(this)
+        )
+    }
+
+    render() {
+        return(
+            <Modal
+                className="customeDetails"
+                footer=""
+                title=""
+                width="900px"
+                visible={this.props.visible}
+                onOk={this.visitOk}
+                onCancel={this.visitCancel}
+            >
+                <Tabs
+                    activeKey={this.state.activeKey}
+                    onChange={(e) => {
+                        this.setState({
+                            activeKey: e
+                        })
+                    }}
+                >
+                    <TabPane tab="项目概况" key="1">
+                        <ProjectOverview/>
+                    </TabPane>
+                    <TabPane tab="外包/供应商信息" key="2">
+                        <CheckProject
+                            {...this.props}
+                            tid={this.props.tid}
+                            isAuditPayment={true}
+                            status={this.state.refundStatus}
+                            projectStatus={this.props.projectStatus}
+                            thirdInfoList={this.state.thirdInfoList}
+                            dataSource={this.state.payNodeList}
+                            outsourceRemarks={this.state.outsourceRemarks}
+                            fileList={this.state.pictureUrl}
+                            startType={this.state.startType}
+                            onRefresh={()=>{
+                                this.waiDetail();
+                                this.thirdTable(this.props.tid);
+                                this.payNodeTable(this.props.tid)
+                            }}
+                        />
+                    </TabPane>
+                </Tabs>
+            </Modal>
+        )
+    }
+}
+
+export default DetailsModal;

+ 20 - 0
js/component/manageCenter/order/orderNew/costAuditList/detailsModal/outsourceBlock.js

@@ -0,0 +1,20 @@
+import React,{Component} from 'react';
+
+class outsourceBlock extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+
+        }
+    }
+
+    render() {
+        return(
+            <div>
+                22
+            </div>
+        )
+    }
+}
+
+export default outsourceBlock;

+ 20 - 0
js/component/manageCenter/order/orderNew/costAuditList/detailsModal/projectOverview.js

@@ -0,0 +1,20 @@
+import React,{Component} from 'react';
+
+class projectOverview extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+
+        }
+    }
+
+    render() {
+        return(
+            <div>
+                11
+            </div>
+        )
+    }
+}
+
+export default projectOverview;

+ 150 - 0
js/component/manageCenter/order/orderNew/costAuditList/filterColumn.js

@@ -0,0 +1,150 @@
+import React,{Component} from 'react';
+import {Button, Form, Input, message, Select} from "antd";
+import $ from "jquery/src/ajax";
+
+class FilterColumn extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+
+        };
+    }
+
+    handleReset(){
+        this.props.form.resetFields();
+    }
+
+    handleSubmit(e){
+        e.preventDefault();
+        this.props.form.validateFieldsAndScroll((err, values) => {
+            if (err) {
+                return;
+            }
+            console.log(values)
+            this.props.onSearch(values);
+        })
+    }
+
+    render() {
+        const { getFieldDecorator } = this.props.form;
+        return (
+            <div className="user-search">
+                <Form
+                    layout="inline"
+                    name="basic"
+                    initialValues={{
+                        remember: true,
+                    }}
+                    onSubmit={(e)=>{
+                        this.handleSubmit(e)
+                    }}
+                >
+                    <Form.Item
+                        label="合同编号"
+                    >
+                        {getFieldDecorator('contractNo', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入合同编号"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="订单编号"
+                    >
+                        {getFieldDecorator('orderNo', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入订单编号"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="客户名称"
+                    >
+                        {getFieldDecorator('userName', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入客户名称"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="部门编号"
+                    >
+                        {getFieldDecorator('depId', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入部门编号"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="发起人"
+                    >
+                        {getFieldDecorator('aname', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入发起人"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="财务名称"
+                    >
+                        {getFieldDecorator('financeName', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入财务名称"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="分类名称"
+                    >
+                        {getFieldDecorator('cname', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入分类名称"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="项目名称"
+                    >
+                        {getFieldDecorator('pname', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Input style={{ width: '200px' }} placeholder="请输入项目名称"/>
+                        )}
+                    </Form.Item>
+                    <Form.Item
+                        label="状态"
+                    >
+                        {getFieldDecorator('status', {
+                            rules: [{ required: false, message: '' }],
+                        })(
+                            <Select
+                                placeholder="选择状态"
+                                style={{ width: 150, marginRight: "10px" }}
+                            >
+                                <Select.Option value={0}>审核</Select.Option>
+                                <Select.Option value={1}>待支付</Select.Option>
+                                <Select.Option value={2}>驳回</Select.Option>
+                                <Select.Option value={3}>已支付</Select.Option>
+                                <Select.Option value={4}>已取消</Select.Option>
+                            </Select>
+                        )}
+                    </Form.Item>
+                    <Form.Item>
+                        <Button type="primary" htmlType="submit" style={{ marginLeft: 10 }}>
+                            搜索
+                        </Button>
+                    </Form.Item>
+                    <Form.Item>
+                        <Button style={{ marginLeft: 10 }} onClick={this.handleReset}>
+                            重置
+                        </Button>
+                    </Form.Item>
+                </Form>
+            </div>
+        )
+    }
+}
+
+const WrappedNormalLoginForm = Form.create()(FilterColumn);
+
+export default WrappedNormalLoginForm

+ 246 - 0
js/component/manageCenter/order/orderNew/costAuditList/index.js

@@ -0,0 +1,246 @@
+import React,{Component} from 'react';
+import $ from "jquery/src/ajax";
+import {
+    Spin,
+    Table,
+    message,
+    Tooltip,
+} from "antd";
+import {ShowModal,getProjectStatus} from "@/tools";
+import FilterColumn from './filterColumn';
+import DetailsModal from './detailsModal/index';
+import './index.less';
+import "../customer.less";
+
+class CostAuditList extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: true,
+            columns: [
+                {
+                    title: "序号",
+                    dataIndex: "key",
+                    key: "key",
+                },
+                {
+                    title: "合同编号",
+                    dataIndex: "contractNo",
+                    key: "contractNo",
+                },
+                {
+                    title: "订单编号",
+                    dataIndex: "orderNo",
+                    key: "orderNo",
+                },
+                {
+                    title: "客户名称",
+                    dataIndex: "userName",
+                    key: "userName",
+                    render: (text) => {
+                        return (
+                            <Tooltip placement="bottom" title={text && text.length > 9 ? text : ''}>
+                                {text && text.length > 9 ? text.substr(0, 9) + "..." : text}
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "部门名称",
+                    dataIndex: "depName",
+                    key: "depName",
+                    render: (text) => {
+                        return (
+                            <Tooltip placement="bottom" title={text && text.length > 9 ? text : ''}>
+                                {text && text.length > 9 ? text.substr(0, 9) + "..." : text}
+                            </Tooltip>
+                        )
+                    },
+                },
+                {
+                    title: "实际总付款",
+                    dataIndex: "costAmount",
+                    key: "costAmount",
+                },
+                {
+                    title: "付款类型",
+                    dataIndex: "chooseType",
+                    key: "chooseType",
+                    render: (text) => {
+                        return text == 0 ? '第三方成本' :
+                                text == 1 ? '催款节点' :'官费';
+                    },
+                },
+                {
+                    title: "本次付款金额",
+                    dataIndex: "paymentAmount",
+                    key: "paymentAmount",
+                },
+                {
+                    title: "本次申请金额",
+                    dataIndex: "applicationAmount",
+                    key: "applicationAmount",
+                },
+                {
+                    title: "申请人",
+                    dataIndex: "aname",
+                    key: "aname",
+                },
+                {
+                    title: "财务名称",
+                    dataIndex: "financeName",
+                    key: "financeName",
+                },
+                {
+                    title: "分类名称",
+                    dataIndex: "cname",
+                    key: "cname",
+                },
+                {
+                    title: "项目名称",
+                    dataIndex: "pname",
+                    key: "pname",
+                },
+                {
+                    title: "项目状态",
+                    dataIndex: "projectStatus",
+                    key: "projectStatus",
+                    render: (text) => {
+                        return getProjectStatus(text);
+                    },
+                },
+                {
+                    title: "状态",
+                    dataIndex: "status",
+                    key: "status",
+                    render: (text) => {
+                        return text === 0 ? '审核' :
+                            text === 1 ? '待支付' :
+                                text === 2 ? '驳回' : '已支付';
+                    },
+                },
+                {
+                    title: "创建时间",
+                    dataIndex: "createTime",
+                    key: "createTime",
+                },
+            ],
+            dataSource: [],
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return "共" + total + "条数据";
+                },
+            },
+            selectInfor: {},
+            visible: false,
+        }
+    }
+
+    componentDidMount() {
+        this.loadData()
+    }
+
+    loadData(pageNo,data={}) {
+        this.setState({
+            loading: true,
+        });
+        data.pageNo = pageNo || 1;
+        data.pageSize = this.state.pagination.pageSize;
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/company/selectPaymentList",
+            data: data,
+            success: function (data) {
+                ShowModal(this);
+                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.list.length; i++) {
+                        let thisdata = data.data.list[i];
+                        let obj = thisdata;
+                        obj.key = i + 1;
+                        theArr.push(obj);
+                    }
+                    this.state.pagination.total = data.data.totalCount;
+                }
+                if (data.data && data.data.list && !data.data.list.length) {
+                    this.state.pagination.total = 0;
+                }
+                this.setState({
+                    dataSource: theArr,
+                    pageNo: pageNo,
+                    pagination: this.state.pagination,
+                });
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                });
+            }.bind(this)
+        );
+    }
+
+    tableRowClick(record){
+        console.log(record);
+        this.setState({
+            visible: true,
+            selectInfor: record,
+        })
+    }
+
+    render() {
+        return (
+          <div className="user-content">
+              <div className="content-title">
+                  <span>派单管理</span>
+              </div>
+              <FilterColumn {...this.props} onSearch={(data)=>{
+                  this.loadData(1,data)
+              }}/>
+              <div className="patent-table">
+                  <Spin spinning={this.state.loading}>
+                      <Table
+                          columns={this.state.columns}
+                          dataSource={this.state.dataSource}
+                          pagination={this.state.pagination}
+                          onRowClick={(record)=>{
+                              this.tableRowClick(record)
+                          }}
+                          scroll={{ x: "max-content", y: 0 }}
+                          bordered
+                          size="small"
+                      />
+                  </Spin>
+              </div>
+              {
+                  this.state.visible ?
+                      <DetailsModal
+                          projectStatus={this.state.selectInfor.projectStatus}
+                          tid={this.state.selectInfor.tid}
+                          orderNo={this.state.selectInfor.orderNo}
+                          visible={this.state.visible}
+                          visitCancel={()=>{
+                              this.setState({
+                                  visible: false
+                              })
+                          }}/> : <div/>
+              }
+          </div>
+        );
+    }
+}
+
+export default CostAuditList

+ 0 - 0
js/component/manageCenter/order/orderNew/costAuditList/index.less