Browse Source

增加咨询师付款申请驳回列表
新增财务经理与总监的付款审核列表

mentoswzq 4 years ago
parent
commit
3b147fb5b4
24 changed files with 4448 additions and 158 deletions
  1. 7 6
      js/component/manageCenter/components/checkProject/index.jsx
  2. 13 6
      js/component/manageCenter/components/checkProject/payRecord.js
  3. 10 0
      js/component/manageCenter/financialManage/content.jsx
  4. 17 13
      js/component/manageCenter/financialManage/distribute/outInvoiceQuery.jsx
  5. 36 28
      js/component/manageCenter/financialManage/distribute/shouKuanAll.jsx
  6. 14 14
      js/component/manageCenter/order/orderNew/changeComponent/changeDetailYxy.js
  7. 100 89
      js/component/manageCenter/order/orderNew/contractYxy.js
  8. 218 0
      js/component/manageCenter/order/orderNew/glCostAuditList/component/orderPaymentModal.js
  9. 304 0
      js/component/manageCenter/order/orderNew/glCostAuditList/detailsModal/index.js
  10. 20 0
      js/component/manageCenter/order/orderNew/glCostAuditList/detailsModal/outsourceBlock.js
  11. 1048 0
      js/component/manageCenter/order/orderNew/glCostAuditList/detailsModal/projectOverview.js
  12. 149 0
      js/component/manageCenter/order/orderNew/glCostAuditList/filterColumn.js
  13. 384 0
      js/component/manageCenter/order/orderNew/glCostAuditList/index.js
  14. 0 0
      js/component/manageCenter/order/orderNew/glCostAuditList/index.less
  15. 10 0
      js/component/manageCenter/project/content.jsx
  16. 0 1
      js/component/manageCenter/project/task/myTask.jsx
  17. 217 0
      js/component/manageCenter/project/task/payApplyReject/component/orderPaymentModal.js
  18. 303 0
      js/component/manageCenter/project/task/payApplyReject/detailsModal/index.js
  19. 20 0
      js/component/manageCenter/project/task/payApplyReject/detailsModal/outsourceBlock.js
  20. 1048 0
      js/component/manageCenter/project/task/payApplyReject/detailsModal/projectOverview.js
  21. 149 0
      js/component/manageCenter/project/task/payApplyReject/filterColumn.js
  22. 379 0
      js/component/manageCenter/project/task/payApplyReject/index.jsx
  23. 0 0
      js/component/manageCenter/project/task/payApplyReject/index.less
  24. 2 1
      js/component/manageCenter/publicComponent/picture.jsx

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

@@ -231,7 +231,7 @@ class CheckProject extends Component {
                   }}>
                     申请付款
                   </Button>
-                  {this.props.status === 2 ? <Popconfirm
+                  {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                       title="是否删除?"
                       onConfirm={() => {
                         this.payNodeConfirmDeletNew(record)
@@ -337,7 +337,7 @@ class CheckProject extends Component {
                     }}>
                       申请付款
                     </Button>
-                    {this.props.status === 2 ? <Popconfirm
+                    {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                         title="是否删除?"
                         onConfirm={() => {
                           this.confirmDeletNew(record)
@@ -455,7 +455,7 @@ class CheckProject extends Component {
                         申请付款
                       </Button>
                     }
-                    {this.props.status === 2 ? <Popconfirm
+                    {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                         title="是否删除?"
                         onConfirm={() => {
                           this.confirmDeletNew(record)
@@ -592,7 +592,7 @@ class CheckProject extends Component {
                           }}>
                         付官费
                       </Button> : <div/>}
-                      {this.props.status === 2 ? <Popconfirm
+                      {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                           title="是否删除?"
                           onConfirm={() => {
                             this.confirmDeletNew(record)
@@ -699,7 +699,7 @@ class CheckProject extends Component {
                           申请付款
                         </Button>
                       }
-                      {this.props.status === 2 ? <Popconfirm
+                      {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                           title="是否删除?"
                           onConfirm={() => {
                             this.confirmDeletNew(record)
@@ -832,7 +832,7 @@ class CheckProject extends Component {
                         申请付款
                       </Button>
                     }
-                    {this.props.status === 2 ? <Popconfirm
+                    {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                         title="是否删除?"
                         onConfirm={() => {
                           this.confirmDeletNew(record)
@@ -1210,6 +1210,7 @@ class CheckProject extends Component {
                     payId={this.state.orderPaymentsId}
                     visible={this.state.payRecordVisible}
                     isAuditPayment={this.props.isAuditPayment}
+                    isAuditPaymentGLY={this.props.isAuditPaymentGLY}
                     onRefresh={()=>{
                       this.props.onRefresh();
                       this.getSelectOrderPayment();

+ 13 - 6
js/component/manageCenter/components/checkProject/payRecord.js

@@ -274,9 +274,15 @@ class PayRecord extends Component{
 
     //0审核 1驳回 2待支付 3已支付 4取消
     noExamineOperation(){
+        const { getFieldDecorator } = this.props.form;
         return (
             this.state.paymentDetails.status === 2 ? <Form.Item>
-                <Button type="primary" htmlType="submit">
+                {getFieldDecorator('auditNotes', {
+                    rules: [{ required: true, message: '请输入重新发起说明!' }],
+                })(
+                    <Input style={{ width: '200px' }} placeholder="请输入重新发起说明" type={'textarea'}/>
+                )}
+                <Button type="primary" htmlType="submit" style={{marginLeft:'15px'}}>
                     重新发起申请
                 </Button>
                 <Button type="danger" style={{float:'right'}} onClick={(e)=>{
@@ -412,6 +418,7 @@ class PayRecord extends Component{
                                 <div>
                                     {/* projectType 0正常 1专利 2软著 3审计*/}
                                     {/* isAuditPayment 是否为财务*/}
+                                    {/* isAuditPaymentGLY 是否为财务经理或者为财务管理员*/}
                                     {/* chooseType 0第三方 1催款 2官费*/}
                                     {/*{*/}
                                     {/*    (paymentDetails.chooseType === 2 || this.props.projectType === 2 || (this.props.projectType === 3 && this.props.patentType === 0) ) && !this.props.isAuditPayment?*/}
@@ -464,7 +471,7 @@ class PayRecord extends Component{
                                             <Input
                                                 type={'number'}
                                                 style={{ width: '200px' }}
-                                                disabled={ this.props.isAuditPayment ? this.state.paymentDetails.status !== 0 : this.state.paymentDetails.status !== 2}
+                                                disabled={this.props.isAuditPaymentGLY ? this.props.isAuditPaymentGLY : ( this.props.isAuditPayment ? this.state.paymentDetails.status !== 0 : this.state.paymentDetails.status !== 2)}
                                                 placeholder="请输入本次申请支付数量"
                                                 onChange={(e)=>{
                                                     if(!isNaN(parseFloat(paymentDetails.initialUnitPrice))){
@@ -494,7 +501,7 @@ class PayRecord extends Component{
                                     <Input
                                         type={'number'}
                                         style={{ width: '200px' }}
-                                        disabled={ this.props.isAuditPayment ? this.state.paymentDetails.status !== 0 : this.state.paymentDetails.status !== 2}
+                                        disabled={this.props.isAuditPaymentGLY ? this.props.isAuditPaymentGLY : (this.props.isAuditPayment ? this.state.paymentDetails.status !== 0 : this.state.paymentDetails.status !== 2)}
                                         placeholder="请输入本次申请支付金额"/>
                                 )}
                             </Form.Item>
@@ -504,7 +511,7 @@ class PayRecord extends Component{
                                 label="备注:"
                             >
                                 {
-                                    (!this.props.isAuditPayment && this.state.paymentDetails.status === 2) ?
+                                    (!this.props.isAuditPaymentGLY && !this.props.isAuditPayment && this.state.paymentDetails.status === 2) ?
                                         getFieldDecorator('remarks', {
                                             initialValue: paymentDetails.remarks,
                                             rules: [{ required: true, message: '请输入备注!' }],
@@ -567,7 +574,7 @@ class PayRecord extends Component{
                                         </Button> : <div/>
                                     }
                                 </div>
-                                {!(paymentDetails.status === 1 && this.props.isAuditPayment) ? <div className='payList'>
+                                {!(paymentDetails.status === 1 && (this.props.isAuditPayment || this.props.isAuditPaymentGLY)) ? <div className='payList'>
                                     {
                                         financialPaymentList.map((value,key)=>(
                                             <div key={key} className='payitem'>
@@ -579,7 +586,7 @@ class PayRecord extends Component{
                                 </div> : <div/>}
                             </div> : <div/>}
                             {
-                                this.props.isAuditPayment ? this.examineOperation() : this.noExamineOperation()
+                                this.props.isAuditPaymentGLY ? "" : (this.props.isAuditPayment ? this.examineOperation() : this.noExamineOperation())
                             }
                             {this.props.isAuditPayment && paymentDetails.status === 1 ? <Button style={{marginLeft:'20px'}} type="primary" onClick={(e)=>{
                                 this.handleSubmit(e,3);

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

@@ -256,6 +256,7 @@ class Content extends Component {
           });
         });
         break;
+      //成本付款申请列表(财务专员查看)
       case "costAuditList":
         require.ensure([], () => {
           const CostAuditList = require("../order/orderNew/costAuditList").default;
@@ -264,6 +265,15 @@ class Content extends Component {
           });
         });
         break;
+      //成本付款申请列表(财务经理与总监查看)
+      case "glCostAuditList":
+        require.ensure([], () => {
+          const GlCostAuditList = require("../order/orderNew/glCostAuditList").default;
+          this.setState({
+            component: <GlCostAuditList />,
+          });
+        });
+        break;
       default:
         require.ensure([], () => {
           let Module = require("../module").default;

+ 17 - 13
js/component/manageCenter/financialManage/distribute/outInvoiceQuery.jsx

@@ -27,6 +27,7 @@ import {
 } from "@/tools";
 import ShowModalDiv from "@/showModal.jsx";
 import { ChooseList } from "../../../../component/manageCenter/order/orderNew/chooseList";
+import ImgList from "../../../common/imgList";
 
 const FormItem = Form.Item;
 const { TabPane } = Tabs
@@ -695,7 +696,7 @@ const outInvoiceQuery = React.createClass({
             </Button>
           </div>
         </Modal>
-        <Modal
+        {this.state.avisible ? <Modal
           className="admin-desc-content"
           footer=""
           title="开具发票申请单"
@@ -868,17 +869,20 @@ const outInvoiceQuery = React.createClass({
                       </span>
                     }
                   >
-                    <Upload
-                      className="demandDetailShow-upload"
-                      listType="picture-card"
-                      fileList={this.state.orgCodeUrl}
-                      onPreview={file => {
-                        this.setState({
-                          previewImage: file.url || file.thumbUrl,
-                          previewVisible: true
-                        });
-                      }}
-                    ></Upload>
+                    {/*<Upload*/}
+                    {/*  className="demandDetailShow-upload"*/}
+                    {/*  listType="picture-card"*/}
+                    {/*  fileList={this.state.orgCodeUrl}*/}
+                    {/*  onPreview={file => {*/}
+                    {/*    this.setState({*/}
+                    {/*      previewImage: file.url || file.thumbUrl,*/}
+                    {/*      previewVisible: true*/}
+                    {/*    });*/}
+                    {/*  }}*/}
+                    {/*/>*/}
+                    {this.state.avisible && this.state.orgCodeUrl ? <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
+                      <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'}/>
+                    </div> : <div/>}
                     <Modal
                       maskClosable={false}
                       footer={null}
@@ -969,7 +973,7 @@ const outInvoiceQuery = React.createClass({
               </div>
             </Spin>
           </Form>
-        </Modal>
+        </Modal> : <div/>}
         <Modal
           visible={this.state.bvisible}
           footer=""

+ 36 - 28
js/component/manageCenter/financialManage/distribute/shouKuanAll.jsx

@@ -118,34 +118,8 @@ const ShouKuang = React.createClass({
         } else {
           for (let i = 0; i < data.data.pagination.list.length; i++) {
             let thisdata = data.data.pagination.list[i];
-            theArr.push({
-              key: thisdata.orderNo,
-              orderNo: thisdata.orderNo,
-              orderType: thisdata.orderType,
-              orderStatus: thisdata.orderStatus,
-              sellerName: thisdata.sellerName,
-              processStatus: thisdata.processStatus,
-              liquidationStatus: thisdata.liquidationStatus,
-              approval: thisdata.approval,
-              buyerName: thisdata.buyerName,
-              actuallyTotalAmount: thisdata.actuallyTotalAmount,
-              signTime: thisdata.signTime,
-              companyId: thisdata.companyId,
-              companyName: thisdata.companyName,
-              buyerId: thisdata.buyerId,
-              buyerName: thisdata.buyerName,
-              contractNo: thisdata.contractNo,
-              createTime: thisdata.createTime,
-              departmentName: thisdata.departmentName,
-              invoiceAmount: thisdata.invoiceAmount,
-              finalReceivables: thisdata.finalReceivables,
-              finalReceivablesTime: thisdata.finalReceivablesTime,
-              signTotalAmount: thisdata.signTotalAmount,
-              financeName: thisdata.financeName,
-              backStatus: thisdata.backStatus,
-              orderReceivables: thisdata.orderReceivables,
-              orderArrears: thisdata.orderArrears,
-            });
+            thisdata.key = thisdata.orderNo;
+            theArr.push(thisdata);
           }
         }
         this.state.pagination.current = data.data.pagination.pageNo;
@@ -684,6 +658,22 @@ const ShouKuang = React.createClass({
           key: "actuallyTotalAmount",
         },
         {
+          title: "总成本(万元)",
+          dataIndex: "costAmount",
+          key: "costAmount",
+          render: (text) => {
+            return isNaN(parseFloat(text)) ? text : parseFloat(text);
+          }
+        },
+        {
+          title: "已付成本(万元)",
+          dataIndex: "paymentAmount",
+          key: "paymentAmount",
+          render: (text) => {
+            return isNaN(parseFloat(text)) ? text : parseFloat(text);
+          },
+        },
+        {
           title: "最近收款(万元)",
           dataIndex: "finalReceivables",
           key: "finalReceivables",
@@ -814,6 +804,24 @@ const ShouKuang = React.createClass({
           className: "title-table",
         },
         {
+          title: "总成本(万元)",
+          dataIndex: "costAmount",
+          key: "costAmount",
+          className: "title-table",
+          render: (text) => {
+            return isNaN(parseFloat(text)) ? text : parseFloat(text);
+          }
+        },
+        {
+          title: "已付成本(万元)",
+          dataIndex: "paymentAmount",
+          key: "paymentAmount",
+          className: "title-table",
+          render: (text) => {
+            return isNaN(parseFloat(text)) ? text : parseFloat(text);
+          }
+        },
+        {
           title: "最近收款(万元)",
           dataIndex: "finalReceivables",
           key: "finalReceivables",

+ 14 - 14
js/component/manageCenter/order/orderNew/changeComponent/changeDetailYxy.js

@@ -447,20 +447,20 @@ class ChangeDetail extends Component {
             labelCol={{ span: 4 }}
             wrapperCol={{ span: 18 }}
           >
-            <Upload
-              className="demandDetailShow-upload"
-              listType="picture-card"
-              fileList={orgCodeUrl}
-              onPreview={(file) => {
-                this.setState({
-                  previewImage: file.url || file.thumbUrl,
-                  previewVisible: true,
-                });
-              }}
-            />
-            {/*<div style={{paddingTop:'10px',paddingBottom:'10px'}}>*/}
-            {/*  <ImgList fileList={orgCodeUrl} ItemWidth={'96px'}/>*/}
-            {/*</div>*/}
+            {/*<Upload*/}
+            {/*  className="demandDetailShow-upload"*/}
+            {/*  listType="picture-card"*/}
+            {/*  fileList={orgCodeUrl}*/}
+            {/*  onPreview={(file) => {*/}
+            {/*    this.setState({*/}
+            {/*      previewImage: file.url || file.thumbUrl,*/}
+            {/*      previewVisible: true,*/}
+            {/*    });*/}
+            {/*  }}*/}
+            {/*/>*/}
+            {orgCodeUrl ? <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
+              <ImgList fileList={orgCodeUrl} ItemWidth={'96px'}/>
+            </div> : <div/>}
             <Modal
               maskClosable={false}
               footer={null}

+ 100 - 89
js/component/manageCenter/order/orderNew/contractYxy.js

@@ -1162,7 +1162,7 @@ const contractChange = Form.create()(
                 />
               </Spin>
             </div>
-            <Modal
+            {this.state.visible ? <Modal
               className="customeDetails"
               footer=""
               maskClosable={false}
@@ -1176,41 +1176,41 @@ const contractChange = Form.create()(
                 onChange={this.callback}
                 type="card"
               >
-                {this.state.orderData.deleteSign === 3 ? (
-                  <TabPane tab="订单详情" key="a">
-                    <AddOrders
-                      processStatus={0}
-                      data={this.state.orderData.orderNo}
-                      mark={this.state.buttonStatus}
-                      getPrimaryOrder={this.getPrimaryOrder}
-                      totalCui={this.state.totalCui}
-                      closeDesc={this.closeDesc}
-                      getAdditionalOrder={this.getAdditionalOrder}
-                      deleteSign={this.state.orderData.deleteSign}
-                    />
-                  </TabPane>
-                ) : (
-                    <TabPane tab="订单详情" key="a">
-                      <Form
-                        layout="horizontal"
-                        onSubmit={this.handleSubmit}
-                        id="demand-form"
-                        style={{ paddingBottom: "40px" }}
-                      >
-                        <Spin spinning={this.state.loading}>
-                          <OrderDetail
-                            orderData={this.state.orderData}
-                            getOrderLog={this.getOrderLog}
+                <TabPane tab="订单详情" key="a">
+                  {this.state.activeKey === 'a' ? <div>
+                    {this.state.orderData.deleteSign === 3 ? (
+                        <AddOrders
+                            processStatus={0}
+                            data={this.state.orderData.orderNo}
+                            mark={this.state.buttonStatus}
+                            getPrimaryOrder={this.getPrimaryOrder}
                             totalCui={this.state.totalCui}
-                            dataSourceX={this.state.dataSourceX}
-                            contactList={this.state.contactList}
-                            contactListNew={this.state.contactListNew}
-                            orderNo={this.state.orderNo}
-                          />
-                        </Spin>
-                      </Form>
-                    </TabPane>
-                  )}
+                            closeDesc={this.closeDesc}
+                            getAdditionalOrder={this.getAdditionalOrder}
+                            deleteSign={this.state.orderData.deleteSign}
+                        />
+                    ):(
+                        <Form
+                            layout="horizontal"
+                            onSubmit={this.handleSubmit}
+                            id="demand-form"
+                            style={{ paddingBottom: "40px" }}
+                        >
+                          <Spin spinning={this.state.loading}>
+                            <OrderDetail
+                                orderData={this.state.orderData}
+                                getOrderLog={this.getOrderLog}
+                                totalCui={this.state.totalCui}
+                                dataSourceX={this.state.dataSourceX}
+                                contactList={this.state.contactList}
+                                contactListNew={this.state.contactListNew}
+                                orderNo={this.state.orderNo}
+                            />
+                          </Spin>
+                        </Form>
+                    ) }
+                  </div>:<div/>}
+                </TabPane>
                 {/* <TabPane tab="合同变更记录" key="2">
                   {this.state.contractData.processState === 0 ? (
                     <ChangeApply
@@ -1235,32 +1235,37 @@ const contractChange = Form.create()(
                 {tabList.map((item, index, arr) => {
                   return (
                     <TabPane tab={"合同变更记录" + (index + 1)} key={item.id}>
-                      {this.state.contractData.processState === 0 &&
-                      this.state.contractData.status != 5 ? (
-                        <ChangeApply
-                          id={Math.random()}
-                          orderData={this.state.contractData}
-                          voucherUrl={this.state.voucherUrl}
-                          onCancel={this.visitCancel}
-                        />
-                      ) : (
-                        <ChangeDetail
-                          id={item.id}
-                          money={
-                            index == arr.length - 1
-                              ? this.state.orderData.totalAmount + ""
-                              : undefined
-                          }
-                          data={this.state.contractData}
-                          pictureUrl={this.state.voucherUrl}
-                          processState={this.props.processState}
-                          dataSource={this.state.dataProps}
-                          proceedsData={this.state.proceedsData}
-                          proceedsTotal={this.state.proTotal}
-                          invoiceTotal={this.state.invTotal}
-                          contactList={this.state.refundInvoice}
-                        />
-                      )}
+                      {
+                        this.state.activeKey === String(item.id) ?
+                            (
+                                this.state.contractData.processState === 0 &&
+                                this.state.contractData.status != 5 ? (
+                                    <ChangeApply
+                                        id={Math.random()}
+                                        orderData={this.state.contractData}
+                                        voucherUrl={this.state.voucherUrl}
+                                        onCancel={this.visitCancel}
+                                    />
+                                ) : (
+                                    <ChangeDetail
+                                        id={item.id}
+                                        money={
+                                          index == arr.length - 1
+                                              ? this.state.orderData.totalAmount + ""
+                                              : undefined
+                                        }
+                                        data={this.state.contractData}
+                                        pictureUrl={this.state.voucherUrl}
+                                        processState={this.props.processState}
+                                        dataSource={this.state.dataProps}
+                                        proceedsData={this.state.proceedsData}
+                                        proceedsTotal={this.state.proTotal}
+                                        invoiceTotal={this.state.invTotal}
+                                        contactList={this.state.refundInvoice}
+                                    />
+                                )
+                            ) : <div/>
+                      }
                     </TabPane>
                   );
                 })}
@@ -1271,24 +1276,27 @@ const contractChange = Form.create()(
                         tab={"原订单" + (index + 1)}
                         key={item.usedOrder}
                       >
-                        <Form
-                          layout="horizontal"
-                          onSubmit={this.handleSubmit}
-                          id="demand-form"
-                          style={{ paddingBottom: "40px" }}
-                        >
-                          <Spin spinning={this.state.loading}>
-                            <OrderDetail
-                              orderData={this.state.primaryOrderData}
-                              getOrderLog={this.getOrderLog}
-                              dataSourceX={this.state.dataSourceX}
-                              contactList={this.state.contactList}
-                              orderNo={this.state.primaryOrderNo}
-                              totalCui={this.state.totalCui}
-                              contactListNew={this.state.contactListNew}
-                            />
-                          </Spin>
-                        </Form>
+                        {
+                          this.state.activeKey === String(item.usedOrder) ?
+                              <Form
+                                  layout="horizontal"
+                                  onSubmit={this.handleSubmit}
+                                  id="demand-form"
+                                  style={{ paddingBottom: "40px" }}
+                              >
+                                <Spin spinning={this.state.loading}>
+                                  <OrderDetail
+                                      orderData={this.state.primaryOrderData}
+                                      getOrderLog={this.getOrderLog}
+                                      dataSourceX={this.state.dataSourceX}
+                                      contactList={this.state.contactList}
+                                      orderNo={this.state.primaryOrderNo}
+                                      totalCui={this.state.totalCui}
+                                      contactListNew={this.state.contactListNew}
+                                  />
+                                </Spin>
+                              </Form> : <div/>
+                        }
                       </TabPane>
                     );
                   } else {
@@ -1322,15 +1330,18 @@ const contractChange = Form.create()(
                 {this.state.status === 4 && this.state.isAddition ? (
                   this.state.type === 4 || this.state.type === 5 ? (
                     <TabPane tab="附加订单" key="c">
-                      <AddOrders
-                        processStatus={0}
-                        data={this.state.orderData.additionalOrder}
-                        mark={this.state.buttonStatusA}
-                        getPrimaryOrder={this.getPrimaryOrder}
-                        closeDesc={this.closeDesc}
-                        getAdditionalOrder={this.getAdditionalOrder}
-                        activeKey={this.state.activeKey}
-                      />
+                      {
+                        this.state.activeKey === "c" ?
+                            <AddOrders
+                                processStatus={0}
+                                data={this.state.orderData.additionalOrder}
+                                mark={this.state.buttonStatusA}
+                                getPrimaryOrder={this.getPrimaryOrder}
+                                closeDesc={this.closeDesc}
+                                getAdditionalOrder={this.getAdditionalOrder}
+                                activeKey={this.state.activeKey}
+                            /> : <div/>
+                      }
                     </TabPane>
                   ) : (
                       ""
@@ -1339,7 +1350,7 @@ const contractChange = Form.create()(
                     ""
                   )}
               </Tabs>
-            </Modal>
+            </Modal> : <div/>}
             <Modal
               maskClosable={false}
               visible={this.state.addnextVisible}

+ 218 - 0
js/component/manageCenter/order/orderNew/glCostAuditList/component/orderPaymentModal.js

@@ -0,0 +1,218 @@
+import React,{Component} from 'react';
+import {Button, message, Modal, Spin, Table} from "antd";
+import $ from "jquery";
+import PayRecord from "../../../../components/checkProject/payRecord";
+
+class OrderPaymentModal extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: false,
+            selectOrderPayments: [],
+            payRecordVisible: false,
+            orderPaymentsId: 0,
+            ContactsListsNew: [
+                {
+                    title: '编号',
+                    dataIndex: 'id',
+                    key: 'id',
+                },
+                {
+                    title: '供应商名称',
+                    dataIndex: 'companyName',
+                    key: 'companyName',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {text+'-'+record.tpcId}
+                                {
+                                    text !== record.tpcName ?
+                                        '('+record.tpcName+')' : ''
+                                }
+                            </div>
+                        )
+                    },
+                },
+                {
+                    title: '支付类型',
+                    dataIndex: 'chooseType',
+                    key: 'chooseType',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {text === 0 ? '第三方' : text === 1 ? '催款' : '官费'}
+                            </div>
+                        )
+                    },
+                },
+                {
+                    title: '申请支付金额(万元)',
+                    dataIndex: 'applicationAmount',
+                    key: 'applicationAmount',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {/*类型为官费时显示申请支付金额与申请支付数量*/}
+                                {/*{*/}
+                                {/*    !(this.props.projectType === 2 || (this.props.projectType === 1 && record.patentType === 0)) || record.chooseType === 2 ?*/}
+                                {/*        text :*/}
+                                {/*        '/'*/}
+                                {/*}*/}
+                                {text}
+                            </div>
+                        )
+                    }
+                },
+                {
+                    title: '申请支付数量',
+                    dataIndex: 'quantity',
+                    key: 'quantity',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {/*类型为官费时显示申请支付金额与申请支付数量*/}
+                                {/*{*/}
+                                {/*    this.props.projectType === 2 || (this.props.projectType === 1 &&record.patentType === 0) || record.chooseType === 2?*/}
+                                {/*        text :*/}
+                                {/*        '/'*/}
+                                {/*}*/}
+                                {text}
+                            </div>
+                        )
+                    }
+                },
+                {
+                    title: '申请时间',
+                    dataIndex: 'createTimes',
+                    key: 'createTimes',
+                },
+                {
+                    title: '状态',
+                    dataIndex: 'status',
+                    key: 'status',
+                    render: (text, record) => {
+                        return (
+                            <div className="gutter-box" style={{
+                                width: '100%',
+                                display: 'flex',
+                            }}>
+                                <div className="operation">
+                                    {
+                                        text === 0 ? '审核中' :
+                                            text === 1 ? '审核通过' :
+                                                text === 2 ? '已驳回' :
+                                                    text === 3 ? '支付完成' : '已取消'
+                                    }
+                                </div>
+                                <Button type="primary" size='small' style={{marginLeft:'10px'}} onClick={()=>{
+                                    this.setState({
+                                        payRecordVisible: true,
+                                        orderPaymentsId: record.id,
+                                    })
+                                }}>
+                                    {this.operationJudgmentName(text)}
+                                </Button>
+                            </div>
+                        )
+                    },
+                },
+            ]
+        }
+        this.getSelectOrderPayment = this.getSelectOrderPayment.bind(this);
+    }
+
+    componentDidMount() {
+        if(this.props.tid){
+            this.getSelectOrderPayment();
+        }
+    }
+
+    //0审核 1待支付 2驳回 3已支付 4取消
+    operationJudgmentName(id) {
+        if(this.props.isAuditPayment){          //财务
+            return id === 0 ? '待审核' :
+                id === 1 ? '待支付' :
+                    id === 2 ? '查看详情' : '查看详情'
+        }else{
+            return id === 0 ? '待审核' :
+                id === 1 ? '待支付' :
+                    id === 2 ? '查看详情' : '查看详情'
+        }
+    }
+
+    //支付列表
+    getSelectOrderPayment() {
+        $.ajax({
+            method: 'get',
+            dataType: 'json',
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/company/selectOrderPayment',
+            data: {
+                id: this.props.tid,
+            },
+            success: function (data) {
+                if (data.error.length) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    this.setState({
+                        selectOrderPayments: data.data
+                    })
+                }
+            }.bind(this),
+        }).always(
+            function () {
+
+            }.bind(this)
+        )
+    }
+
+    render() {
+        return(
+            <Modal
+                className="customeDetails"
+                footer={false}
+                title="支付记录"
+                width="900px"
+                visible={this.props.visible}
+                onOk={()=>{
+                    this.props.onSuccess && this.props.onSuccess();
+                }}
+                onCancel={()=>{
+                    this.props.onCancer && this.props.onCancer();
+                }}
+            >
+                <Spin spinning={this.state.loading}>
+                    <Table
+                        pagination={false}
+                        columns={this.state.ContactsListsNew}
+                        dataSource={this.state.selectOrderPayments}
+                        onRowClick={this.tableRowClickOne}
+                        scroll={{ x: 'max-content', y: 0 }}
+                        bordered
+                        size="small"
+                    />
+                </Spin>
+                {this.state.payRecordVisible ? <PayRecord
+                    {...this.props}
+                    payId={this.state.orderPaymentsId}
+                    visible={this.state.payRecordVisible}
+                    tid={this.props.tid}
+                    isAuditPayment={this.props.isAuditPayment}
+                    isAuditPaymentGLY={this.props.isAuditPaymentGLY}
+                    projectType={this.props.projectType}
+                    changeVisible={()=>{
+                        this.getSelectOrderPayment();
+                        this.setState({
+                            payRecordVisible: false,
+                            orderPaymentsId: 0,
+                        })
+                    }}
+                /> : <div/>}
+            </Modal>
+        )
+    }
+}
+
+export default OrderPaymentModal;

+ 304 - 0
js/component/manageCenter/order/orderNew/glCostAuditList/detailsModal/index.js

@@ -0,0 +1,304 @@
+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: [],
+            orderDtails: {},
+        }
+        this.visitCancel = this.visitCancel.bind(this);
+    }
+
+    componentDidMount() {
+        if(this.props.tid){
+            this.waiDetail();
+            this.thirdTable(this.props.tid);
+            this.payNodeTable(this.props.tid)
+        }
+    }
+
+    visitOk(){
+        this.setState({
+            oldInfor: {}
+        });
+    }
+
+    visitCancel(){
+        this.setState({
+            oldInfor: {}
+        });
+        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) {
+                    if(data.data.unitNumber){
+                        this.setState({
+                            oldInfor: {
+                                companyName:data.data.companyName,
+                                unitPrice:data.data.unitPrice,
+                                unitNumber:data.data.unitNumber,
+                                amount:data.data.amount,
+                                outsourceRemarks:data.data.outsourceRemarks,
+                                refundStatus: data.data.refundStatus,
+                                pictureUrl: data.data.pictureUrl
+                                    ? splitUrl(
+                                        data.data.pictureUrl,
+                                        ',',
+                                        globalConfig.avatarHost + '/upload',
+                                        url
+                                    )
+                                    : [], //图片地址
+                            }
+                        })
+                    }else{
+                        this.setState({
+                            orderDtails: data.data,
+                            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);
+                        thisData.key = i;
+                        theArr.push(thisData)
+                    }
+
+                    for(let d=0;d<theArr.length;d++){
+                        theArr[d].companyName = theArr[d].companyName+ '-' + theArr[d].id;
+                        // companyNameArr[d] = {
+                        //     companyName: theArr[d].companyName,
+                        //     id: theArr[d].id,
+                        // }
+                    }
+
+                    if (!allTotalAmount) {
+                        allTotalAmount = 0
+                    }
+
+                    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 || []
+                    //对#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
+                        })
+                    }
+
+                    for(let d=0;d<payNodeArr.length;d++){
+                        payNodeArr[d].companyName = payNodeArr[d].companyName+ '-' + payNodeArr[d].cid;
+                    }
+
+                    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
+                    defaultActiveKey='1'
+                    activeKey={this.state.activeKey}
+                    onChange={(e) => {
+                        this.setState({
+                            activeKey: e
+                        })
+                        if(e === '1'){
+                            this.waiDetail();
+                            this.thirdTable(this.props.tid);
+                            this.payNodeTable(this.props.tid);
+                        }
+                    }}
+                    tabBarExtraContent={
+                        <div style={{fontWeight:'bold',paddingRight:'15px'}}>
+                          <span>
+                            项目名称:
+                          <span style={{color:'#F00',paddingRight:'5px'}}>{this.props.taskName}</span>
+                          </span>
+                          <span style={{marginLeft:'15px'}}>
+                            项目编号:
+                          <span style={{color:'#F00',paddingRight:'5px'}}>
+                              {this.props.taskID}
+                          </span>
+                          </span>
+                        </div>
+                    }
+                >
+                    <TabPane tab="外包/供应商信息" key="1">
+                        {this.state.activeKey === '1' ? <CheckProject
+                            {...this.props}
+                            tid={this.props.tid}
+                            oldInfor={this.state.oldInfor}
+                            isAuditPaymentGLY={true}
+                            status={this.state.refundStatus}
+                            patentNameType={this.state.orderDtails.patentNameType}
+                            patentName={this.state.orderDtails.patentName}
+                            patentType={this.state.orderDtails.patentType}
+                            projectType={this.props.projectType}
+                            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);
+                                this.props.refreshList && this.props.refreshList();
+                            }}
+                        /> : <div/>}
+                    </TabPane>
+                    <TabPane tab="项目概况" key="2">
+                        <ProjectOverview projectStatus={this.props.projectStatus} tid={this.props.tid}/>
+                    </TabPane>
+                </Tabs>
+            </Modal>
+        )
+    }
+}
+
+export default DetailsModal;

+ 20 - 0
js/component/manageCenter/order/orderNew/glCostAuditList/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;

File diff suppressed because it is too large
+ 1048 - 0
js/component/manageCenter/order/orderNew/glCostAuditList/detailsModal/projectOverview.js


+ 149 - 0
js/component/manageCenter/order/orderNew/glCostAuditList/filterColumn.js

@@ -0,0 +1,149 @@
+import React,{Component} from 'react';
+import {Button, Form, Input,Select} from "antd";
+
+class FilterColumn extends Component{
+    constructor(props) {
+        super(props);
+        this.handleReset = this.handleReset.bind(this);
+    }
+
+    handleReset(){
+        this.props.form.resetFields();
+        this.props.onResetSearch && this.props.onResetSearch();
+    }
+
+    handleSubmit(e){
+        e.preventDefault();
+        this.props.form.validateFieldsAndScroll((err, values) => {
+            if (err) {
+                return;
+            }
+            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: '200px',
+                                }}
+                            >
+                                <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

+ 384 - 0
js/component/manageCenter/order/orderNew/glCostAuditList/index.js

@@ -0,0 +1,384 @@
+import React,{Component} from 'react';
+import $ from "jquery/src/ajax";
+import {
+    Spin,
+    Table,
+    message,
+    Tooltip, Tabs, Button,Modal
+} from "antd";
+import {ShowModal,getProjectStatus} from "@/tools";
+import FilterColumn from './filterColumn';
+import DetailsModal from './detailsModal/index';
+import OrderPaymentModal from './component/orderPaymentModal';
+import './index.less';
+import "../customer.less";
+import PayRecord from "../../../components/checkProject/payRecord";
+
+const { TabPane } = Tabs;
+
+class CostAuditList extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: true,
+            columns: [
+                {
+                    title: "支付编号",
+                    dataIndex: "key",
+                    key: "key",
+                },
+                {
+                    title: "项目编号",
+                    dataIndex: "tid",
+                    key: "tid",
+                },
+                {
+                    title: "项目名称",
+                    dataIndex: "pname",
+                    key: "pname",
+                },
+                {
+                    title: "项目状态",
+                    dataIndex: "projectStatus",
+                    key: "projectStatus",
+                    render: (text) => {
+                        return getProjectStatus(text);
+                    },
+                },
+                {
+                    title: "分类名称",
+                    dataIndex: "cname",
+                    key: "cname",
+                },
+                {
+                    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: "applicationAmount",
+                    key: "applicationAmount",
+                    render: (text) => {
+                        return isNaN(parseFloat(text)) ? text : parseFloat(text);
+                    }
+                },
+                {
+                    title: "已支付",
+                    dataIndex: "paymentAmount",
+                    key: "paymentAmount",
+                    render: (text) => {
+                        return isNaN(parseFloat(text)) ? text : parseFloat(text);
+                    },
+                },
+                {
+                    title: "申请人",
+                    dataIndex: "aname",
+                    key: "aname",
+                },
+                {
+                    title: "财务名称",
+                    dataIndex: "financeName",
+                    key: "financeName",
+                },
+                {
+                    title: "状态",
+                    dataIndex: "status",
+                    key: "status",
+                    render: (text) => {
+                        return text === 0 ? '审核' :
+                                    text === 1 ? '待支付' :
+                                        text === 2 ? '驳回' :
+                                            text === 3 ? '已支付' :
+                                                text === 4 ? '已取消' : '';
+                    },
+                },
+                {
+                    title: "创建时间",
+                    dataIndex: "createTime",
+                    key: "createTime",
+                },
+                {
+                    title: '操作',
+                    dataIndex: 'action',
+                    key: 'action',
+                    render: (text, record) => {
+                        return (
+                            <div style={{
+                                display:'flex',
+                                alignItems:'center',
+                            }}>
+                                <Button type="primary" size="small" onClick={(e) => {
+                                    e.stopPropagation();
+                                    this.setState({
+                                        payRecordVisible: true,
+                                        orderPaymentsId: record.id,
+                                        tid: record.tid,
+                                        projectType: record.projectType,
+                                    })
+                                }}>
+                                    {
+                                        record.status === 0 ? '待审核' :
+                                            record.status === 1 ? '待支付' :
+                                                record.status === 2 ? '查看详情' : '查看详情'
+                                    }
+                                </Button>
+                                <Button
+                                    type="primary"
+                                    style={{
+                                        marginLeft: "10px",
+                                        background: "orangered",
+                                        border: "none"
+                                    }}
+                                    size="small"
+                                    onClick={(e) => {
+                                        e.stopPropagation();
+                                        this.setState({
+                                            paymentVisible: true,
+                                            tid: record.tid,
+                                            projectType: record.projectType,
+                                        })
+                                }}>
+                                    付款记录
+                                </Button>
+                            </div>
+                        )
+                    }
+                }
+            ],
+            dataSource: [],
+            selectedRowKeys: [],
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return "共" + total + "条数据";
+                },
+            },
+            page: 1,
+            selectInfor: {},
+            visible: false,
+            paymentVisible: false,
+            tid: 0,
+            projectType: 0,
+            payRecordVisible: false,
+            orderPaymentsId: 0,
+        }
+    }
+
+    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 {
+                    this.setState({
+                        page: data.data.pageNo
+                    });
+                    for (let i = 0; i < data.data.list.length; i++) {
+                        let thisdata = data.data.list[i];
+                        let obj = thisdata;
+                        obj.key = thisdata.id;
+                        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){
+        this.setState({
+            visible: true,
+            selectInfor: record,
+        })
+    }
+
+    render() {
+        return (
+          <div className="user-content">
+              <div className="content-title">
+                  <span>成本付款申请</span>
+              </div>
+              <Tabs defaultActiveKey="1" onChange={this.callback} className="test">
+                  <TabPane tab="搜索" key="1">
+                      <div style={{paddingTop:'10px'}}>
+                          <FilterColumn
+                              {...this.props}
+                              onSearch={(data)=>{
+                                  this.setState({
+                                      searchInfor: data
+                                  });
+                                  this.loadData(1,data);
+                              }}
+                              onResetSearch={()=>{
+                                  this.setState({
+                                      searchInfor: {}
+                                  });
+                                  this.loadData();
+                              }}
+                          />
+                      </div>
+                  </TabPane>
+              </Tabs>
+              <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
+                          tid={this.state.selectInfor.tid}
+                          orderNo={this.state.selectInfor.orderNo}
+                          projectType={this.state.selectInfor.projectType}
+                          projectStatus={this.state.selectInfor.projectStatus}
+                          taskName={this.state.selectInfor.pname}
+                          taskID={this.state.selectInfor.tid}
+                          visible={this.state.visible}
+                          refreshList={()=>{
+                              this.loadData(this.state.page,this.state.searchInfor);
+                          }}
+                          visitCancel={()=>{
+                              this.setState({
+                                  visible: false
+                              })
+                          }}/> : <div/>
+              }
+              {this.state.paymentVisible ?
+                  <OrderPaymentModal
+                      tid={this.state.tid}
+                      visible={this.state.paymentVisible}
+                      projectType={this.state.projectType}
+                      isAuditPaymentGLY={true}
+                      onCancer={()=>{
+                          this.setState({
+                              paymentVisible: false,
+                              tid: 0,
+                              projectType: 0,
+                          });
+                          this.loadData(this.state.page,this.state.searchInfor);
+                      }}
+                      onSuccess={()=>{
+                          this.setState({
+                              paymentVisible: false,
+                              tid: 0,
+                              projectType: 0,
+                          });
+                          this.loadData(this.state.page,this.state.searchInfor);
+                  }}/> :
+                  <div/>
+              }
+              {this.state.payRecordVisible ? <PayRecord
+                  {...this.props}
+                  payId={this.state.orderPaymentsId}
+                  visible={this.state.payRecordVisible}
+                  tid={this.state.tid}
+                  isAuditPaymentGLY={true}
+                  projectType={this.state.projectType}
+                  changeVisible={()=>{
+                      this.loadData(this.state.page,this.state.searchInfor);
+                      this.setState({
+                          payRecordVisible: false,
+                          orderPaymentsId: 0,
+                          tid: 0,
+                          projectType: 0,
+                      })
+                  }}
+              /> : <div/>}
+          </div>
+        );
+    }
+}
+
+export default CostAuditList

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


+ 10 - 0
js/component/manageCenter/project/content.jsx

@@ -165,6 +165,16 @@ class Content extends Component {
               });
             });
             break;
+            //付款申请驳回列表
+            case "payApplyReject":
+                require.ensure([], () => {
+                    const PayApplyReject = require("./task/payApplyReject/index")
+                        .default;
+                    this.setState({
+                        component: <PayApplyReject ApiUrl={""} />
+                    });
+                });
+                break;
           //任务统计
           case "taskCount":
             require.ensure([], () => {

+ 0 - 1
js/component/manageCenter/project/task/myTask.jsx

@@ -4139,7 +4139,6 @@ const Task = React.createClass({
                           data={{
                             sign: 'order_task_file',
                             url: '/api/admin/orderProject/uploadOrderTaskFile',
-                            number: 8,
                           }}
                         />
                       </FormItem>

+ 217 - 0
js/component/manageCenter/project/task/payApplyReject/component/orderPaymentModal.js

@@ -0,0 +1,217 @@
+import React,{Component} from 'react';
+import {Button, message, Modal, Spin, Table} from "antd";
+import $ from "jquery";
+import PayRecord from "../../../../components/checkProject/payRecord";
+
+class OrderPaymentModal extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: false,
+            selectOrderPayments: [],
+            payRecordVisible: false,
+            orderPaymentsId: 0,
+            ContactsListsNew: [
+                {
+                    title: '编号',
+                    dataIndex: 'id',
+                    key: 'id',
+                },
+                {
+                    title: '供应商名称',
+                    dataIndex: 'companyName',
+                    key: 'companyName',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {text+'-'+record.tpcId}
+                                {
+                                    text !== record.tpcName ?
+                                        '('+record.tpcName+')' : ''
+                                }
+                            </div>
+                        )
+                    },
+                },
+                {
+                    title: '支付类型',
+                    dataIndex: 'chooseType',
+                    key: 'chooseType',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {text === 0 ? '第三方' : text === 1 ? '催款' : '官费'}
+                            </div>
+                        )
+                    },
+                },
+                {
+                    title: '申请支付金额(万元)',
+                    dataIndex: 'applicationAmount',
+                    key: 'applicationAmount',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {/*类型为官费时显示申请支付金额与申请支付数量*/}
+                                {/*{*/}
+                                {/*    !(this.props.projectType === 2 || (this.props.projectType === 1 && record.patentType === 0)) || record.chooseType === 2 ?*/}
+                                {/*        text :*/}
+                                {/*        '/'*/}
+                                {/*}*/}
+                                {text}
+                            </div>
+                        )
+                    }
+                },
+                {
+                    title: '申请支付数量',
+                    dataIndex: 'quantity',
+                    key: 'quantity',
+                    render: (text, record) => {
+                        return (
+                            <div>
+                                {/*类型为官费时显示申请支付金额与申请支付数量*/}
+                                {/*{*/}
+                                {/*    this.props.projectType === 2 || (this.props.projectType === 1 &&record.patentType === 0) || record.chooseType === 2?*/}
+                                {/*        text :*/}
+                                {/*        '/'*/}
+                                {/*}*/}
+                                {text}
+                            </div>
+                        )
+                    }
+                },
+                {
+                    title: '申请时间',
+                    dataIndex: 'createTimes',
+                    key: 'createTimes',
+                },
+                {
+                    title: '状态',
+                    dataIndex: 'status',
+                    key: 'status',
+                    render: (text, record) => {
+                        return (
+                            <div className="gutter-box" style={{
+                                width: '100%',
+                                display: 'flex',
+                            }}>
+                                <div className="operation">
+                                    {
+                                        text === 0 ? '审核中' :
+                                            text === 1 ? '审核通过' :
+                                                text === 2 ? '已驳回' :
+                                                    text === 3 ? '支付完成' : '已取消'
+                                    }
+                                </div>
+                                <Button type="primary" size='small' style={{marginLeft:'10px'}} onClick={()=>{
+                                    this.setState({
+                                        payRecordVisible: true,
+                                        orderPaymentsId: record.id,
+                                    })
+                                }}>
+                                    {this.operationJudgmentName(text)}
+                                </Button>
+                            </div>
+                        )
+                    },
+                },
+            ]
+        }
+        this.getSelectOrderPayment = this.getSelectOrderPayment.bind(this);
+    }
+
+    componentDidMount() {
+        if(this.props.tid){
+            this.getSelectOrderPayment();
+        }
+    }
+
+    //0审核 1待支付 2驳回 3已支付 4取消
+    operationJudgmentName(id) {
+        if(this.props.isAuditPayment){          //财务
+            return id === 0 ? '待审核' :
+                id === 1 ? '待支付' :
+                    id === 2 ? '查看详情' : '查看详情'
+        }else{
+            return id === 0 ? '待审核' :
+                id === 1 ? '待支付' :
+                    id === 2 ? '查看详情' : '查看详情'
+        }
+    }
+
+    //支付列表
+    getSelectOrderPayment() {
+        $.ajax({
+            method: 'get',
+            dataType: 'json',
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/company/selectOrderPayment',
+            data: {
+                id: this.props.tid,
+            },
+            success: function (data) {
+                if (data.error.length) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    this.setState({
+                        selectOrderPayments: data.data
+                    })
+                }
+            }.bind(this),
+        }).always(
+            function () {
+
+            }.bind(this)
+        )
+    }
+
+    render() {
+        return(
+            <Modal
+                className="customeDetails"
+                footer={false}
+                title="支付记录"
+                width="900px"
+                visible={this.props.visible}
+                onOk={()=>{
+                    this.props.onSuccess && this.props.onSuccess();
+                }}
+                onCancel={()=>{
+                    this.props.onCancer && this.props.onCancer();
+                }}
+            >
+                <Spin spinning={this.state.loading}>
+                    <Table
+                        pagination={false}
+                        columns={this.state.ContactsListsNew}
+                        dataSource={this.state.selectOrderPayments}
+                        onRowClick={this.tableRowClickOne}
+                        scroll={{ x: 'max-content', y: 0 }}
+                        bordered
+                        size="small"
+                    />
+                </Spin>
+                {this.state.payRecordVisible ? <PayRecord
+                    {...this.props}
+                    payId={this.state.orderPaymentsId}
+                    visible={this.state.payRecordVisible}
+                    tid={this.props.tid}
+                    isAuditPayment={this.props.isAuditPayment}
+                    projectType={this.props.projectType}
+                    changeVisible={()=>{
+                        this.getSelectOrderPayment();
+                        this.setState({
+                            payRecordVisible: false,
+                            orderPaymentsId: 0,
+                        })
+                    }}
+                /> : <div/>}
+            </Modal>
+        )
+    }
+}
+
+export default OrderPaymentModal;

+ 303 - 0
js/component/manageCenter/project/task/payApplyReject/detailsModal/index.js

@@ -0,0 +1,303 @@
+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: [],
+            orderDtails: {},
+        }
+        this.visitCancel = this.visitCancel.bind(this);
+    }
+
+    componentDidMount() {
+        if(this.props.tid){
+            this.waiDetail();
+            this.thirdTable(this.props.tid);
+            this.payNodeTable(this.props.tid)
+        }
+    }
+
+    visitOk(){
+        this.setState({
+            oldInfor: {}
+        });
+    }
+
+    visitCancel(){
+        this.setState({
+            oldInfor: {}
+        });
+        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) {
+                    if(data.data.unitNumber){
+                        this.setState({
+                            oldInfor: {
+                                companyName:data.data.companyName,
+                                unitPrice:data.data.unitPrice,
+                                unitNumber:data.data.unitNumber,
+                                amount:data.data.amount,
+                                outsourceRemarks:data.data.outsourceRemarks,
+                                refundStatus: data.data.refundStatus,
+                                pictureUrl: data.data.pictureUrl
+                                    ? splitUrl(
+                                        data.data.pictureUrl,
+                                        ',',
+                                        globalConfig.avatarHost + '/upload',
+                                        url
+                                    )
+                                    : [], //图片地址
+                            }
+                        })
+                    }else{
+                        this.setState({
+                            orderDtails: data.data,
+                            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);
+                        thisData.key = i;
+                        theArr.push(thisData)
+                    }
+
+                    for(let d=0;d<theArr.length;d++){
+                        theArr[d].companyName = theArr[d].companyName+ '-' + theArr[d].id;
+                        // companyNameArr[d] = {
+                        //     companyName: theArr[d].companyName,
+                        //     id: theArr[d].id,
+                        // }
+                    }
+
+                    if (!allTotalAmount) {
+                        allTotalAmount = 0
+                    }
+
+                    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 || []
+                    //对#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
+                        })
+                    }
+
+                    for(let d=0;d<payNodeArr.length;d++){
+                        payNodeArr[d].companyName = payNodeArr[d].companyName+ '-' + payNodeArr[d].cid;
+                    }
+
+                    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
+                    defaultActiveKey='1'
+                    activeKey={this.state.activeKey}
+                    onChange={(e) => {
+                        this.setState({
+                            activeKey: e
+                        })
+                        if(e === '1'){
+                            this.waiDetail();
+                            this.thirdTable(this.props.tid);
+                            this.payNodeTable(this.props.tid);
+                        }
+                    }}
+                    tabBarExtraContent={
+                        <div style={{fontWeight:'bold',paddingRight:'15px'}}>
+                          <span>
+                            项目名称:
+                          <span style={{color:'#F00',paddingRight:'5px'}}>{this.props.taskName}</span>
+                          </span>
+                          <span style={{marginLeft:'15px'}}>
+                            项目编号:
+                          <span style={{color:'#F00',paddingRight:'5px'}}>
+                              {this.props.taskID}
+                          </span>
+                          </span>
+                        </div>
+                    }
+                >
+                    <TabPane tab="外包/供应商信息" key="1">
+                        {this.state.activeKey === '1' ? <CheckProject
+                            {...this.props}
+                            tid={this.props.tid}
+                            oldInfor={this.state.oldInfor}
+                            status={this.state.refundStatus}
+                            patentNameType={this.state.orderDtails.patentNameType}
+                            patentName={this.state.orderDtails.patentName}
+                            patentType={this.state.orderDtails.patentType}
+                            projectType={this.props.projectType}
+                            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);
+                                this.props.refreshList && this.props.refreshList();
+                            }}
+                        /> : <div/>}
+                    </TabPane>
+                    <TabPane tab="项目概况" key="2">
+                        <ProjectOverview projectStatus={this.props.projectStatus} tid={this.props.tid}/>
+                    </TabPane>
+                </Tabs>
+            </Modal>
+        )
+    }
+}
+
+export default DetailsModal;

+ 20 - 0
js/component/manageCenter/project/task/payApplyReject/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;

File diff suppressed because it is too large
+ 1048 - 0
js/component/manageCenter/project/task/payApplyReject/detailsModal/projectOverview.js


+ 149 - 0
js/component/manageCenter/project/task/payApplyReject/filterColumn.js

@@ -0,0 +1,149 @@
+import React,{Component} from 'react';
+import {Button, Form, Input,Select} from "antd";
+
+class FilterColumn extends Component{
+    constructor(props) {
+        super(props);
+        this.handleReset = this.handleReset.bind(this);
+    }
+
+    handleReset(){
+        this.props.form.resetFields();
+        this.props.onResetSearch && this.props.onResetSearch();
+    }
+
+    handleSubmit(e){
+        e.preventDefault();
+        this.props.form.validateFieldsAndScroll((err, values) => {
+            if (err) {
+                return;
+            }
+            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: '200px',*/}
+                    {/*            }}*/}
+                    {/*        >*/}
+                    {/*            <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

+ 379 - 0
js/component/manageCenter/project/task/payApplyReject/index.jsx

@@ -0,0 +1,379 @@
+import React,{Component} from 'react';
+import $ from "jquery/src/ajax";
+import {
+    Spin,
+    Table,
+    message,
+    Tooltip, Tabs, Button,Modal
+} from "antd";
+import {ShowModal,getProjectStatus} from "@/tools";
+import FilterColumn from './filterColumn';
+import DetailsModal from './detailsModal/index';
+import OrderPaymentModal from './component/orderPaymentModal';
+import './index.less';
+import CheckProject from "../../../components/checkProject";
+import PayRecord from "../../../components/checkProject/payRecord";
+
+const { TabPane } = Tabs;
+
+class PayApplyReject extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: true,
+            columns: [
+                {
+                    title: "支付编号",
+                    dataIndex: "key",
+                    key: "key",
+                },
+                {
+                    title: "项目编号",
+                    dataIndex: "tid",
+                    key: "tid",
+                },
+                {
+                    title: "项目名称",
+                    dataIndex: "pname",
+                    key: "pname",
+                },
+                {
+                    title: "项目状态",
+                    dataIndex: "projectStatus",
+                    key: "projectStatus",
+                    render: (text) => {
+                        return getProjectStatus(text);
+                    },
+                },
+                {
+                    title: "分类名称",
+                    dataIndex: "cname",
+                    key: "cname",
+                },
+                {
+                    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: "applicationAmount",
+                    key: "applicationAmount",
+                    render: (text) => {
+                        return isNaN(parseFloat(text)) ? text : parseFloat(text);
+                    }
+                },
+                {
+                    title: "已支付",
+                    dataIndex: "paymentAmount",
+                    key: "paymentAmount",
+                    render: (text) => {
+                        return isNaN(parseFloat(text)) ? text : parseFloat(text);
+                    },
+                },
+                {
+                    title: "申请人",
+                    dataIndex: "aname",
+                    key: "aname",
+                },
+                {
+                    title: "财务名称",
+                    dataIndex: "financeName",
+                    key: "financeName",
+                },
+                {
+                    title: "状态",
+                    dataIndex: "status",
+                    key: "status",
+                    render: (text) => {
+                        return text === 0 ? '审核' :
+                            text === 1 ? '待支付' :
+                                text === 2 ? '驳回' :
+                                    text === 3 ? '已支付' :
+                                        text === 4 ? '已取消' : '';
+                    },
+                },
+                {
+                    title: "创建时间",
+                    dataIndex: "createTime",
+                    key: "createTime",
+                },
+                {
+                    title: '操作',
+                    dataIndex: 'action',
+                    key: 'action',
+                    render: (text, record) => {
+                        return (
+                            <div style={{
+                                display:'flex',
+                                alignItems:'center',
+                            }}>
+                                <Button type="primary" size="small" onClick={(e) => {
+                                    e.stopPropagation();
+                                    this.setState({
+                                        payRecordVisible: true,
+                                        orderPaymentsId: record.id,
+                                        tid: record.tid,
+                                        projectType: record.projectType,
+                                    })
+                                }}>
+                                    {
+                                        record.status === 0 ? '待审核' :
+                                            record.status === 1 ? '待支付' :
+                                                record.status === 2 ? '查看详情' : '查看详情'
+                                    }
+                                </Button>
+                                <Button
+                                    type="primary"
+                                    style={{
+                                        marginLeft: "10px",
+                                        background: "orangered",
+                                        border: "none"
+                                    }}
+                                    size="small"
+                                    onClick={(e) => {
+                                        e.stopPropagation();
+                                        this.setState({
+                                            paymentVisible: true,
+                                            tid: record.tid,
+                                            projectType: record.projectType,
+                                        })
+                                    }}>
+                                    付款记录
+                                </Button>
+                            </div>
+                        )
+                    }
+                }
+            ],
+            dataSource: [],
+            selectedRowKeys: [],
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return "共" + total + "条数据";
+                },
+            },
+            page: 1,
+            selectInfor: {},
+            visible: false,
+            paymentVisible: false,
+            tid: 0,
+            projectType: 0,
+            payRecordVisible: false,
+            orderPaymentsId: 0,
+        }
+    }
+
+    componentDidMount() {
+        this.loadData()
+    }
+
+    loadData(pageNo,data={}) {
+        this.setState({
+            loading: true,
+        });
+        data.pageNo = pageNo || 1;
+        data.pageSize = this.state.pagination.pageSize;
+        data.status = 2;   //驳回状态
+        $.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 {
+                    this.setState({
+                        page: data.data.pageNo
+                    });
+                    for (let i = 0; i < data.data.list.length; i++) {
+                        let thisdata = data.data.list[i];
+                        let obj = thisdata;
+                        obj.key = thisdata.id;
+                        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){
+        this.setState({
+            visible: true,
+            selectInfor: record,
+        })
+    }
+
+    render() {
+        return (
+            <div className="user-content">
+                <div className="content-title">
+                    <span>付款驳回列表</span>
+                </div>
+                <div style={{paddingTop:'10px'}}>
+                    <FilterColumn
+                        {...this.props}
+                        onSearch={(data)=>{
+                            this.setState({
+                                searchInfor: data
+                            });
+                            this.loadData(1,data);
+                        }}
+                        onResetSearch={()=>{
+                            this.setState({
+                                searchInfor: {}
+                            });
+                            this.loadData();
+                        }}
+                    />
+                </div>
+                <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
+                            tid={this.state.selectInfor.tid}
+                            orderNo={this.state.selectInfor.orderNo}
+                            projectType={this.state.selectInfor.projectType}
+                            projectStatus={this.state.selectInfor.projectStatus}
+                            taskName={this.state.selectInfor.pname}
+                            taskID={this.state.selectInfor.tid}
+                            visible={this.state.visible}
+                            refreshList={()=>{
+                                this.loadData(this.state.page,this.state.searchInfor);
+                            }}
+                            visitCancel={()=>{
+                                this.setState({
+                                    visible: false
+                                })
+                            }}/> : <div/>
+                }
+                {this.state.paymentVisible ?
+                    <OrderPaymentModal
+                        tid={this.state.tid}
+                        visible={this.state.paymentVisible}
+                        projectType={this.state.projectType}
+                        onCancer={()=>{
+                            this.setState({
+                                paymentVisible: false,
+                                tid: 0,
+                                projectType: 0,
+                            });
+                            this.loadData(this.state.page,this.state.searchInfor);
+                        }}
+                        onSuccess={()=>{
+                            this.setState({
+                                paymentVisible: false,
+                                tid: 0,
+                                projectType: 0,
+                            });
+                            this.loadData(this.state.page,this.state.searchInfor);
+                        }}/> :
+                    <div/>
+                }
+                {this.state.payRecordVisible ? <PayRecord
+                    {...this.props}
+                    payId={this.state.orderPaymentsId}
+                    visible={this.state.payRecordVisible}
+                    tid={this.state.tid}
+                    projectType={this.state.projectType}
+                    changeVisible={()=>{
+                        this.loadData(this.state.page,this.state.searchInfor);
+                        this.setState({
+                            payRecordVisible: false,
+                            orderPaymentsId: 0,
+                            tid: 0,
+                            projectType: 0,
+                        })
+                    }}
+                /> : <div/>}
+            </div>
+        );
+    }
+}
+
+export default PayApplyReject

+ 0 - 0
js/component/manageCenter/project/task/payApplyReject/index.less


+ 2 - 1
js/component/manageCenter/publicComponent/picture.jsx

@@ -42,9 +42,10 @@ const PicturesWall = React.createClass({
                     data={{ 'sign': this.props.data.sign }}
                     listType="picture-card"
                     fileList={fileList}
+                    multiple={true}
                     onPreview={this.handlePreview}
                     onChange={this.handleChange} >
-                    {fileList.length >= this.props.data.number ? null : uploadButton}
+                    {uploadButton}
                 </Upload>
                 <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
                     <img alt="example" style={{ width: '100%' }} src={previewImage} />