Browse Source

申请付款

mentoswzq 4 years ago
parent
commit
ce00a092c1

+ 134 - 121
js/component/manageCenter/components/checkProject/applyPaymentModal.js

@@ -1,5 +1,5 @@
 import React,{Component} from 'react';
-import {Button, Form, Input, message, Modal} from "antd";
+import {Button, Form, Input, message, Modal, Spin} from "antd";
 import propType from 'prop-types';
 import $ from "jquery";
 
@@ -31,6 +31,9 @@ class ApplyPaymentModal extends Component{
 
     constructor(props) {
         super(props);
+        this.state={
+            loading: false
+        }
     }
 
     //申请付款
@@ -40,11 +43,17 @@ class ApplyPaymentModal extends Component{
             if (err) {
                 return;
             }
-            console.log('Success:',values);
+            this.setState({
+                loading: true
+            })
             values.tid = this.props.tid;
-            values.nodeId = this.props.nodeId;
+            if(this.props.nodeId){                      //催款
+                values.nodeId = this.props.nodeId;
+                values.chooseType = 1;                  //支付选择 0第三方 1催款
+            }else{
+                values.chooseType = 0                   //支付选择 0第三方 1催款
+            }
             values.paymentType = 0;                 //支付类型 0第三方 1官费(用来做判断发起区别)
-            values.chooseType = 1;                  //支付选择 0第三方 1催款
             $.ajax({
                 method: 'POST',
                 dataType: 'json',
@@ -57,6 +66,8 @@ class ApplyPaymentModal extends Component{
                         loading: false,
                     })
                     if (!data.error.length) {
+                        this.props.changeVisible();
+                        this.props.onRefresh();
                         message.success('申请成功!')
                     } else {
                         message.warning(data.error[0].message)
@@ -81,126 +92,128 @@ class ApplyPaymentModal extends Component{
                     this.props.changeVisible();
                 }}
             >
-                <div>
-                    <div>支付供应商费用</div>
-                    <Form
-                        {...layout}
-                        name="basic"
-                        initialValues={{
-                            remember: true,
-                        }}
-                        onSubmit={(e)=>{
-                            this.handleSubmit(e)
-                        }}
-                    >
-                        <Form.Item
-                            {...formItemLayout}
-                            style={{
-                                display:'flex'
+                <Spin spinning={this.state.loading}>
+                    <div>
+                        <div>支付供应商费用</div>
+                        <Form
+                            {...layout}
+                            name="basic"
+                            initialValues={{
+                                remember: true,
                             }}
-                            label="付款单位/个人:"
-                        >
-                            {getFieldDecorator('companyName', {
-                                initialValue: previewPayInfor.companyName,
-                                rules: [{
-                                    required: false,
-                                    message: '请输入付款单位/个人!',
-                                }],
-                            })(
-                                <Input
-                                    style={{ width: '200px' }}
-                                    placeholder="请输入付款单位/个人"
-                                />
-                            )}
-                        </Form.Item>
-                        {/*<Form.Item*/}
-                        {/*    {...formItemLayout}*/}
-                        {/*    style={{*/}
-                        {/*        display:'flex'*/}
-                        {/*    }}*/}
-                        {/*    label="单价(万元):"*/}
-                        {/*>*/}
-                        {/*    {getFieldDecorator('unitPrice', {*/}
-                        {/*        rules: [{ required: true, message: '请输入单价!' }],*/}
-                        {/*    })(*/}
-                        {/*        <Input style={{ width: '200px' }} placeholder="请输入单价" type={'number'}/>*/}
-                        {/*    )}*/}
-                        {/*</Form.Item>*/}
-                        <Form.Item
-                            {...formItemLayout}
-                            style={{
-                                display:'flex'
-                            }}
-                            label="数量:"
-                        >
-                            {getFieldDecorator('quantity', {
-                                initialValue: parseInt(previewPayInfor.quantity),
-                                rules: [{ required: false, message: '请输入數量!' }],
-                            })(
-                                <Input disabled={previewPayInfor.quantity <= 1} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
-                            )}
-                        </Form.Item>
-                        {/*<Form.Item*/}
-                        {/*    {...formItemLayout}*/}
-                        {/*    style={{*/}
-                        {/*        display:'flex'*/}
-                        {/*    }}*/}
-                        {/*    label="总价(万元):"*/}
-                        {/*>*/}
-                        {/*    {getFieldDecorator('totalPrice', {*/}
-                        {/*        rules: [{ required: false, message: '请输入总价!' }],*/}
-                        {/*    })(*/}
-                        {/*        <Input style={{ width: '200px' }} placeholder="请输入总价" type={'number'}/>*/}
-                        {/*    )}*/}
-                        {/*</Form.Item>*/}
-                        <Form.Item
-                            {...formItemLayout}
-                            style={{
-                                display:'flex'
-                            }}
-                            label="已付(万元):"
-                        >
-                            {getFieldDecorator('totalPrice', {
-                                initialValue: parseFloat(previewPayInfor.partyAmount),
-                                rules: [{ required: false, message: '请输入已付金额!' }],
-                            })(
-                                <Input disabled={true} style={{ width: '200px' }} placeholder="请输入已付金额" type={'number'}/>
-                            )}
-                        </Form.Item>
-                        <Form.Item
-                            {...formItemLayout}
-                            style={{
-                                display:'flex'
-                            }}
-                            label="本次申请支付金额(万元):"
-                        >
-                            {getFieldDecorator('applicationAmount', {
-                                initialValue: parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount),
-                                rules: [{ required: true, message: '请输入本次申请支付金额!' }],
-                            })(
-                                <Input style={{ width: '200px' }} placeholder="请输入本次申请支付金额" type={'number'}/>
-                            )}
-                        </Form.Item>
-                        <Form.Item
-                            {...formItemLayout}
-                            style={{
-                                display:'flex'
+                            onSubmit={(e)=>{
+                                this.handleSubmit(e)
                             }}
-                            label="备注:"
                         >
-                            {getFieldDecorator('remarks', {
-                                rules: [{ required: true, message: '请输入备注!' }],
-                            })(
-                                <Input style={{ width: '200px' }} placeholder="请输入备注" type={'textarea'}/>
-                            )}
-                        </Form.Item>
-                        <Form.Item>
-                            <Button type="primary" htmlType="submit">
-                                确定申请支付
-                            </Button>
-                        </Form.Item>
-                    </Form>
-                </div>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="付款单位/个人:"
+                            >
+                                {getFieldDecorator('companyName', {
+                                    initialValue: previewPayInfor.companyName,
+                                    rules: [{
+                                        required: false,
+                                        message: '请输入付款单位/个人!',
+                                    }],
+                                })(
+                                    <Input
+                                        style={{ width: '200px' }}
+                                        placeholder="请输入付款单位/个人"
+                                    />
+                                )}
+                            </Form.Item>
+                            {/*<Form.Item*/}
+                            {/*    {...formItemLayout}*/}
+                            {/*    style={{*/}
+                            {/*        display:'flex'*/}
+                            {/*    }}*/}
+                            {/*    label="单价(万元):"*/}
+                            {/*>*/}
+                            {/*    {getFieldDecorator('unitPrice', {*/}
+                            {/*        rules: [{ required: true, message: '请输入单价!' }],*/}
+                            {/*    })(*/}
+                            {/*        <Input style={{ width: '200px' }} placeholder="请输入单价" type={'number'}/>*/}
+                            {/*    )}*/}
+                            {/*</Form.Item>*/}
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="数量:"
+                            >
+                                {getFieldDecorator('quantity', {
+                                    initialValue: parseInt(previewPayInfor.quantity),
+                                    rules: [{ required: false, message: '请输入數量!' }],
+                                })(
+                                    <Input disabled={previewPayInfor.quantity <= 1} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
+                                )}
+                            </Form.Item>
+                            {/*<Form.Item*/}
+                            {/*    {...formItemLayout}*/}
+                            {/*    style={{*/}
+                            {/*        display:'flex'*/}
+                            {/*    }}*/}
+                            {/*    label="总价(万元):"*/}
+                            {/*>*/}
+                            {/*    {getFieldDecorator('totalPrice', {*/}
+                            {/*        rules: [{ required: false, message: '请输入总价!' }],*/}
+                            {/*    })(*/}
+                            {/*        <Input style={{ width: '200px' }} placeholder="请输入总价" type={'number'}/>*/}
+                            {/*    )}*/}
+                            {/*</Form.Item>*/}
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="已付(万元):"
+                            >
+                                {getFieldDecorator('totalPrice', {
+                                    initialValue: parseFloat(previewPayInfor.partyAmount),
+                                    rules: [{ required: false, message: '请输入已付金额!' }],
+                                })(
+                                    <Input disabled={true} style={{ width: '200px' }} placeholder="请输入已付金额" type={'number'}/>
+                                )}
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="本次申请支付金额(万元):"
+                            >
+                                {getFieldDecorator('applicationAmount', {
+                                    initialValue: parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount),
+                                    rules: [{ required: true, message: '请输入本次申请支付金额!' }],
+                                })(
+                                    <Input style={{ width: '200px' }} placeholder="请输入本次申请支付金额" type={'number'}/>
+                                )}
+                            </Form.Item>
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="备注:"
+                            >
+                                {getFieldDecorator('remarks', {
+                                    rules: [{ required: true, message: '请输入备注!' }],
+                                })(
+                                    <Input style={{ width: '200px' }} placeholder="请输入备注" type={'textarea'}/>
+                                )}
+                            </Form.Item>
+                            <Form.Item>
+                                <Button type="primary" htmlType="submit">
+                                    确定申请支付
+                                </Button>
+                            </Form.Item>
+                        </Form>
+                    </div>
+                </Spin>
             </Modal>
         )
     }

+ 115 - 47
js/component/manageCenter/components/checkProject/index.jsx

@@ -10,6 +10,7 @@ import {
   Button, message,
   Row,
 } from 'antd'
+import {getProjectStatus,} from '@/tools'
 import { getMaterialStatus, getUrgentStatus } from '@/tools'
 import ApplyPaymentModal from './applyPaymentModal';
 import './index.less'
@@ -25,7 +26,7 @@ class CheckProject extends Component {
       previewVisible: false,
       previewPayVisible: false,
       previewPayInfor: {},        //点击申请付款的第三方信息或者支付节点信息
-      nodeId: -1,
+      nodeId: 0,
       // 专利
       ContactsListsNew: [
         {
@@ -44,7 +45,7 @@ class CheckProject extends Component {
           key: 'unitPrice',
           render: (text, record) => {
             if (text) {
-              return <span>***</span>
+              return <span>{text}</span>
             }
           },
         },
@@ -64,7 +65,7 @@ class CheckProject extends Component {
           key: 'totalAmount',
           render: (text, record) => {
             if (text) {
-              return <span>***</span>
+              return <span>{text}</span>
             }
           },
         },
@@ -73,9 +74,7 @@ class CheckProject extends Component {
           dataIndex: 'partyAmount',
           key: 'partyAmount',
           render: (text, record) => {
-            if (text) {
               return <span>{text}</span>
-            }
           },
         },
         {
@@ -102,16 +101,20 @@ class CheckProject extends Component {
             return (
               <div>
                 {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
+                {/*存在支付节点时不显示第三方的申请付款*/}
                 {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
-                {this.props.isPreviewPay && this.props.status === 1 && this.props.dataSource.length === 0?
-                <Button type="primary" onClick={() => {
-                  this.setState({
-                    previewPayVisible: true,
-                    previewPayInfor: record,
-                  })
-                }}>
-                  申请付款
-                </Button> : <div/>}
+                {
+                    <Button disabled={
+                      !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1) && this.props.dataSource.length === 0)
+                    } type="primary" onClick={() => {
+                      this.setState({
+                        previewPayVisible: true,
+                        previewPayInfor: record,
+                      })
+                    }}>
+                      申请付款
+                    </Button>
+                }
               </div>
             )
           },
@@ -165,7 +168,7 @@ class CheckProject extends Component {
           key: 'totalAmount',
           render: (text, record) => {
             if (text) {
-              return <span>{text}</span>
+              return <span>***</span>
             }
           },
         },
@@ -188,15 +191,21 @@ class CheckProject extends Component {
                 <div>
                   {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
                   {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
-                  <Button type="primary" onClick={() => {
-                    this.setState({
-                      previewPayVisible: true,
-                      nodeId: record.id,           //付款节点id
-                      previewPayInfor: record,
-                    })
-                  }}>
-                    申请付款
-                  </Button>
+                    <Button
+                        disabled={
+                          !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1))
+                        }
+                        type="primary"
+                        onClick={() => {
+                          console.log(record)
+                          this.setState({
+                            previewPayVisible: true,
+                            nodeId: record.id,           //付款节点id
+                            previewPayInfor: record,
+                          })
+                    }}>
+                      申请付款
+                    </Button>
                 </div>
             )
           },
@@ -209,11 +218,17 @@ class CheckProject extends Component {
 
   componentDidMount() {
     if(this.props.tid){
-      this.getSelectOutsourceLog();
-      this.getSelectOrderPayment();
+      setTimeout(()=>{
+        this.getSelectOutsourceLog();
+        this.getSelectOrderPayment();
+      },500)
     }
   }
 
+  componentDidUpdate(prevProps, prevState, snapshot) {
+
+  }
+
   onChange() {
     this.setState({
       value: e.target.value,
@@ -297,6 +312,9 @@ class CheckProject extends Component {
                 </div> :
                 <div>供应商信息(普通单)</div>
           }
+          <div style={{marginLeft:'auto'}}>
+            <span style={{color:'#58a3ff'}}>项目状态:</span>{getProjectStatus(this.props.projectStatus)}
+          </div>
         </div>
         <div className="thirdParty">
           <div>
@@ -392,8 +410,8 @@ class CheckProject extends Component {
             </Modal>
           </div>
         </div>
-        <div className="outsourceLogConent">
-          <div className="title">外包状态:</div>
+        {parseInt(this.props.startType) !== 1 ? <div className="outsourceLogConent">
+          <div className="title">外包状态</div>
           <div className="outsourceLogList">
             {
               this.state.outsourceLogs.map((value,index)=>(
@@ -413,7 +431,9 @@ class CheckProject extends Component {
                         </div>
                       </Col>
                       <Col className="gutter-row" span={6}>
-                        <div className="gutter-box">
+                        <div className="gutter-box" style={{
+                          wordBreak: 'break-all'
+                        }}>
                           {value.remarks}
                         </div>
                       </Col>
@@ -427,42 +447,82 @@ class CheckProject extends Component {
               ))
             }
           </div>
-        </div>
+        </div> : <div/>}
         <div className="outsourceLogConent">
-          <div className="title">支付记录:</div>
-          <div className="outsourceLogList">
+          <div className="title">支付记录</div>
+          <div className="outsourceLogItem" style={{
+            fontWeight: 'bold',
+          }}>
+            <Row gutter={16}>
+              <Col className="gutter-row" span={4}>
+                <div className="gutter-box">
+                  编号
+                </div>
+              </Col>
+              {/*<Col className="gutter-row" span={5}>*/}
+              {/*  <div className="gutter-box">*/}
+              {/*    订单编号*/}
+              {/*  </div>*/}
+              {/*</Col>*/}
+              <Col className="gutter-row" span={5}>
+                <div className="gutter-box">
+                  支付类型
+                </div>
+              </Col>
+              <Col className="gutter-row" span={5}>
+                <div className="gutter-box">
+                  申请支付金额(万元)
+                </div>
+              </Col>
+              <Col className="gutter-row" span={6}>
+                <div className="gutter-box">
+                  申请时间
+                </div>
+              </Col>
+              <Col className="gutter-row" span={4}>
+                <div className="gutter-box">
+                  状态
+                </div>
+              </Col>
+            </Row>
+          </div>
+          <div className="outsourceLogList" style={{paddingTop:'20px'}}>
             {
               this.state.selectOrderPayments.map((value,index)=>(
                   <div key={index} className="outsourceLogItem">
                     <Row gutter={16}>
-                      <Col className="gutter-row" span={6}>
+                      <Col className="gutter-row" span={4}>
                         <div className="gutter-box">
-                            编号
+                          {index+1 < 10 ? '0'+(index+1) : index+1}
                         </div>
                       </Col>
-                      <Col className="gutter-row" span={6}>
+                      {/*<Col className="gutter-row" span={5}>*/}
+                      {/*  <div className="gutter-box">*/}
+                      {/*    订单编号*/}
+                      {/*  </div>*/}
+                      {/*</Col>*/}
+                      <Col className="gutter-row" span={5}>
                         <div className="gutter-box">
-                          订单编号
+                          {value.paymentType === 0 ? '第三方' : '官费'}
                         </div>
                       </Col>
-                      <Col className="gutter-row" span={6}>
+                      <Col className="gutter-row" span={5}>
                         <div className="gutter-box">
-                          支付类型
+                          {value.applicationAmount}
                         </div>
                       </Col>
                       <Col className="gutter-row" span={6}>
                         <div className="gutter-box">
-                          申请支付金额(万元)
-                        </div>
-                      </Col>
-                      <Col className="gutter-row" span={6}>
-                        <div className="gutter-box">
-                          申请时间
+                          {value.createTimes}
                         </div>
                       </Col>
-                      <Col className="gutter-row" span={6}>
+                      <Col className="gutter-row" span={4}>
                         <div className="gutter-box">
-                          状态
+                          {
+                            value.status === 0 ? '审核' :
+                                value.status === 1 ? '驳回' :
+                                    value.status === 2 ? '待支付' : '已支付'
+                          }
                         </div>
                       </Col>
                     </Row>
@@ -483,8 +543,16 @@ class CheckProject extends Component {
             nodeId={this.state.nodeId}
             previewPayInfor={this.state.previewPayInfor}
             visible={this.state.previewPayVisible}
+            onRefresh={()=>{
+              this.props.onRefresh();
+              this.getSelectOrderPayment();
+            }}
             changeVisible={()=>{
-              this.setState({ previewPayVisible: false })
+              this.setState({
+                previewPayVisible: false,
+                nodeId: 0,                  //付款节点id
+                previewPayInfor: {},
+              })
             }}/>
       </div>
     )

+ 1 - 2
js/component/manageCenter/components/checkProject/index.less

@@ -10,13 +10,12 @@
     flex-flow: row nowrap;
     border-bottom: 1px #000000 dashed;
     padding-left: 20px;
-
+    align-items: center;
     .typeTitle {
       display: flex;
       flex-flow: row nowrap;
       align-items: center;
       padding-right: 15px;
-
       .required {
         color: #F00;
       }

+ 6 - 3
js/component/manageCenter/order/orderNew/outsourcingPro.jsx

@@ -180,6 +180,7 @@ const outsourcingPro = Form.create()(
     },
     getInitialState() {
       return {
+        paySubject:[],
         rotateDeg: 0,
         page: 1,
         releaseDate: [],
@@ -547,6 +548,7 @@ const outsourcingPro = Form.create()(
               signDate: thisdata.signDate, //签单时间
               processStatus: thisdata.processStatus, //流程状态
               liquidationStatus: thisdata.liquidationStatus, //结算状态
+              projectStatus: thisdata.projectStatus.toString(), //项目状态
               contacts: thisdata.contacts, //企业联系人
               contactMobile: thisdata.contactMobile, //联系人电话
               legalPerson: thisdata.legalPerson, //法人
@@ -919,7 +921,6 @@ const outsourcingPro = Form.create()(
                 cid: thisData.cid, //机构id
               })
             }
-            console.log('payNodeArr:', payNodeArr)
             // console.log('paySubject:', this.state.paySubject)
             this.setState({
               tid: id,
@@ -1870,11 +1871,13 @@ const outsourcingPro = Form.create()(
                     <CheckProject
                         {...this.props}
                         tid={this.state.tid}
+                        status={this.state.refundStatus}
                         thirdInfoList={this.state.thirdInfoList}
                         dataSource={this.state.payNodeList}
                         outsourceRemarks={this.state.outsourceRemarks}
                         fileList={this.state.pictureUrl}
                         startType={this.state.startType}
+                        projectStatus={this.state.projectStatus}
                     />
                     {this.state.refundStatus == 0 ? (
                       <div>
@@ -1946,7 +1949,7 @@ const outsourcingPro = Form.create()(
                             <span>{this.state.remarks}</span>
                           </FormItem>
                         </div>
-                        <div className="clearfix">
+                        {parseInt(this.state.startType) !== 1 ?<div className="clearfix">
                           <FormItem
                             className="half-item"
                             {...formItemLayout}
@@ -1956,7 +1959,7 @@ const outsourcingPro = Form.create()(
                               {getRefundStatus(this.state.refundStatus)}
                             </span>
                           </FormItem>
-                        </div>
+                        </div> : <div/>}
                         <div className="clearfix">
                           <FormItem
                             className="half-item"

+ 60 - 36
js/component/manageCenter/project/task/myTask.jsx

@@ -2269,6 +2269,17 @@ const Task = React.createClass({
       //新增
       api = '/api/admin/company/addCompany'
     }
+    let customerId = 0;
+    let isHave =this.state.customerArr.some((value)=>{
+      if(value.companyName === this.state.thirdCompanyName){
+        customerId = value.id
+        return true;
+      }
+    });
+    if(!isHave){
+      message.warning('请输入正确的供应商名称')
+      return;
+    }
     this.setState({
       loading: true,
     })
@@ -2281,7 +2292,8 @@ const Task = React.createClass({
         id: this.state.ThirdId, //id
         tid: this.state.tid, //订单编号
         companyName: this.state.thirdCompanyName, //第三方名称
-        unitPrice: this.state.thirdUnitPrice, //单价
+        cid: customerId,                          //公司id
+        // unitPrice: this.state.thirdUnitPrice, //单价
         quantity: this.state.thirdQuantity, //数量
         totalAmount: this.state.currentTotalPrice, //总价
         material: this.state.thirdMaterial, //材料
@@ -3864,17 +3876,29 @@ const Task = React.createClass({
                   </div>
                 </div>
               ) : (
-                <CheckProject
-                  {...this.props}
-                  tid={this.state.tid}
-                  status={this.state.refundStatus}
-                  isPreviewPay={true}
-                  thirdInfoList={this.state.thirdInfoList}
-                  dataSource={this.state.payNodeList}
-                  outsourceRemarks={this.state.outsourceRemarks}
-                  fileList={this.state.pictureUrl}
-                  startType={this.state.startType}
-                />
+                  <div>
+                    {
+                      this.state.visible ?
+                          <CheckProject
+                              {...this.props}
+                              tid={this.state.tid}
+                              status={this.state.refundStatus}
+                              isPreviewPay={true}
+                              thirdInfoList={this.state.thirdInfoList}
+                              dataSource={this.state.payNodeList}
+                              outsourceRemarks={this.state.outsourceRemarks}
+                              fileList={this.state.pictureUrl}
+                              startType={this.state.startType}
+                              projectStatus={this.state.projectStatus}
+                              onRefresh={()=>{
+                                this.waiDetail();
+                                this.thirdTable(this.state.tid);
+                                this.payNodeTable(this.state.tid)
+                                this.loadData(this.state.page)
+                              }}
+                          /> : <div/>
+                    }
+                  </div>
               )}
               {this.state.refundStatus == 1 ||
               this.state.refundStatus == 0 ||
@@ -3895,7 +3919,7 @@ const Task = React.createClass({
                       <span>{this.state.remarks}</span>
                     </FormItem>
                   </div>
-                  <div className="clearfix">
+                  {parseInt(this.state.startType) !== 1 ?<div className="clearfix">
                     <FormItem
                       className="half-item"
                       {...formItemLayout}
@@ -3903,7 +3927,7 @@ const Task = React.createClass({
                     >
                       <span>{getRefundStatus(this.state.refundStatus)}</span>
                     </FormItem>
-                  </div>
+                  </div> : <div/>}
                   <div
                     className="clearfix"
                     style={{
@@ -5024,27 +5048,27 @@ const Task = React.createClass({
                       onBlur={this.blurChange}
                       onSelect={this.selectAuto}
                       required="required"
-                    ></AutoComplete>
-                    <span className="mandatory">*</span>
-                  </FormItem>
-                </div>
-                <div className="clearfix">
-                  <FormItem {...formItemLayout} label="单价(万元)">
-                    <Input
-                      value={this.state.thirdUnitPrice}
-                      placeholder="请输入金额(必填项)"
-                      required="required"
-                      onBlur={this.calculatedAmount}
-                      onChange={(e) => {
-                        this.setState({
-                          thirdUnitPrice: e.target.value,
-                        })
-                      }}
-                      style={{ width: '220px' }}
                     />
                     <span className="mandatory">*</span>
                   </FormItem>
                 </div>
+                {/*<div className="clearfix">*/}
+                {/*  <FormItem {...formItemLayout} label="单价(万元)">*/}
+                {/*    <Input*/}
+                {/*      value={this.state.thirdUnitPrice}*/}
+                {/*      placeholder="请输入金额(必填项)"*/}
+                {/*      required="required"*/}
+                {/*      onBlur={this.calculatedAmount}*/}
+                {/*      onChange={(e) => {*/}
+                {/*        this.setState({*/}
+                {/*          thirdUnitPrice: e.target.value,*/}
+                {/*        })*/}
+                {/*      }}*/}
+                {/*      style={{ width: '220px' }}*/}
+                {/*    />*/}
+                {/*    <span className="mandatory">*</span>*/}
+                {/*  </FormItem>*/}
+                {/*</div>*/}
                 <div className="clearfix">
                   <FormItem {...formItemLayout} label="数量">
                     <Input
@@ -5063,11 +5087,11 @@ const Task = React.createClass({
                     <span className="mandatory">*</span>
                   </FormItem>
                 </div>
-                <div className="clearfix">
-                  <FormItem {...formItemLayout} label="总价(万元)">
-                    <span>{this.state.currentTotalPrice}</span>
-                  </FormItem>
-                </div>
+                {/*<div className="clearfix">*/}
+                {/*  <FormItem {...formItemLayout} label="总价(万元)">*/}
+                {/*    <span>{this.state.currentTotalPrice}</span>*/}
+                {/*  </FormItem>*/}
+                {/*</div>*/}
                 <div className="clearfix">
                   <FormItem {...formItemLayout} label="材料">
                     <Select

+ 208 - 146
js/component/manageCenter/project/task/myTaskOutsource.jsx

@@ -42,6 +42,7 @@ import {
 } from "@/tools";
 import { taskStatus, projectStatus } from "@/dataDic.js";
 import ShowModalDiv from "@/showModal.jsx";
+import CheckProject from "../../components/checkProject";
 const FormItem = Form.Item;
 const { TabPane } = Tabs;
 const { Option } = Select;
@@ -134,8 +135,64 @@ const MyTaskOutsource = React.createClass({
       }.bind(this)
     );
   },
+  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.state.id,
+        orderNo: this.state.orderNo,
+      },
+    }).done(
+        function (data) {
+          this.setState({
+            loading: false,
+          })
+          if (!data.error.length && data.data) {
+            this.setState({
+              startType: data.data.startType, //类型
+              patentType: data.data.patentType, //专利类型
+              patentNameType: data.data.patentNameType, //专利名称类型
+              patentName: data.data.patentName, //专利名称
+              outsourceRemarks: data.data.outsourceRemarks,
+              remarks: data.data.remarks,
+              companyName: data.data.companyName,
+              amount: data.data.amount,
+              mid: data.data.id,
+              unitPrice: data.data.unitPrice,
+              refundStatus: data.data.refundStatus,
+              unitNumber: data.data.unitNumber,
+              pictureUrl: data.data.pictureUrl
+                  ? splitUrl(
+                      data.data.pictureUrl,
+                      ',',
+                      globalConfig.avatarHost + '/upload',
+                      url
+                  )
+                  : [], //图片地址
+              createTimes: data.data.createTimes,
+              auditTimes: data.data.auditTimes,
+            })
+          } else if (data.error && data.error.length) {
+            message.warning(data.error[0].message)
+          } else if (!data.data) {
+            this.setState({
+              refundStatus: undefined,
+            })
+          }
+        }.bind(this)
+    )
+  },
   getInitialState() {
     return {
+      paySubject: [],
       orderData: [],
       orderNo: "",
       jiedian: [],
@@ -685,6 +742,10 @@ const MyTaskOutsource = React.createClass({
     this.xiangqings(record.orderNo);
     this.xiangmu(record.orderNo);
     this.loaduserss(record);
+    // 获取第三方信息表格
+    this.thirdTable(record.id)
+    //获取支付节点信息表格
+    this.payNodeTable(record.id)
   },
   //点击修改项目详情
   tijiaoOk() {
@@ -1226,6 +1287,9 @@ const MyTaskOutsource = React.createClass({
       modKey: e,
     });
     this.loadCompany();
+    if (e == 2) {
+      this.waiDetail()
+    }
     if (e == 3) {
       this.orderDetailData(this.state.orderNo);
       this.xiangmu(this.state.orderNo);
@@ -1756,6 +1820,132 @@ const MyTaskOutsource = React.createClass({
       }.bind(this)
     );
   },
+  //查看第三方信息表格
+  thirdTable(id) {
+    this.setState({
+      loadData: true,
+    })
+    $.ajax({
+      method: 'get',
+      dataType: 'json',
+      crossDomain: false,
+      url: globalConfig.context + '/api/admin/company/selectCompany',
+      data: {
+        tid: id,
+      },
+      success: function (data) {
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message)
+        } else {
+          let companyNameArr = []
+          let theArr = []
+          let thisData = []
+          let arr = data.data || []
+          let allTotalAmount = 0
+          for (let i = 0; i < arr.length; i++) {
+            thisData = arr[i]
+            allTotalAmount =
+                (allTotalAmount * 10000 + thisData.totalAmount * 10000) / 10000
+            companyNameArr.push(thisData.companyName)
+            theArr.push({
+              key: i,
+              id: thisData.id, //节点Id
+              tid: thisData.tid,
+              companyName: thisData.companyName, //供应商名称
+              unitPrice: thisData.unitPrice, //单价
+              quantity: thisData.quantity, //数量
+              totalAmount: thisData.totalAmount, //总价
+              material: thisData.material, //材料 0无 1有
+              urgent: thisData.urgent, //	0无加急(系统默认)1加急3天 2加急4天 3加急5-10天 4加急11-15天 5加急16-20天 6加急21-25天 7加急26-30天
+              audit: thisData.audit, //0无审计 1年审 2专审
+              assets: thisData.assets, //资产
+              income: thisData.income, //收入
+              remarks: thisData.remarks, //备注
+              cid: thisData.cid, //机构id
+            })
+          }
+          if (!allTotalAmount) {
+            allTotalAmount = 0
+          }
+          console.log(theArr)
+          console.log(companyNameArr)
+
+          this.setState({
+            tid: id,
+            thirdInfoList: theArr,
+            allTotalAmount: allTotalAmount,
+          })
+        }
+      }.bind(this),
+    }).always(
+        function () {
+          this.setState({
+            loading: false,
+          })
+        }.bind(this)
+    )
+  },
+  payNodeTable(id) {
+    this.setState({
+      loadData: true,
+    })
+    $.ajax({
+      method: 'get',
+      dataType: 'json',
+      crossDomain: false,
+      url: globalConfig.context + '/api/admin/company/selectPaymentNode',
+      data: {
+        tid: id,
+      },
+      success: function (data) {
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message)
+        } else {
+          let payNodeArr = []
+          let thisData = []
+          let arr = data.data || []
+          // console.log('this.state.paySubject', this.state.paySubject)
+          //对#5283自定义的补充展示
+          this.state.paySubject.push({ key: '自定义', value: '0' })
+          for (let i = 0; i < arr.length; i++) {
+            thisData = arr[i]
+            //遍历paySubject,获取当前dunType对应的key
+            this.state.paySubject.map((item) => {
+              if (item.value == thisData.dunType) {
+                thisData.dunType = item.key
+              }
+            })
+            payNodeArr.push({
+              key: i,
+              id: thisData.id, //付款节点Id
+              tid: thisData.tid,
+              companyName: thisData.companyName, //供应商名称
+              projectType: thisData.projectType, //项目分类
+              dunType: thisData.dunType, //催款分类
+              unitPrice: thisData.unitPrice, //单价
+              quantity: thisData.quantity, //数量
+              totalAmount: thisData.totalAmount, //总价
+              partyAmount: thisData.partyAmount, //付款
+              partyTimes: thisData.partyTimes, //付款时间
+              cid: thisData.cid, //机构id
+            })
+          }
+          console.log(payNodeArr,'payNodeArr:')
+          // console.log('paySubject:', this.state.paySubject)
+          this.setState({
+            tid: id,
+            payNodeList: payNodeArr,
+          })
+        }
+      }.bind(this),
+    }).always(
+        function () {
+          this.setState({
+            loading: false,
+          })
+        }.bind(this)
+    )
+  },
   orderDetailData(orderNos) {
     this.setState({
       loading: true,
@@ -2739,152 +2929,24 @@ const MyTaskOutsource = React.createClass({
               </Form>
             </TabPane>
             <TabPane tab="外包接单公司信息" key="2">
-              {/*<Button type="primary" onClick={this.addCompany} style={{float:'right',marginBottom:'10px'}}>+新增接单公司</Button>*/}
-              {
-                <div className="clearfix">
-                  <h3 className="sub-title" style={{ marginBottom: "10px" }}>
-                    新增(编辑)接单公司
-                  </h3>
-                  <FormItem
-                    className="three-item"
-                    {...formItemLayout}
-                    label={
-                      <span>
-                        <strong style={{ color: "#f00" }}>*</strong>公司名称
-                      </span>
-                    }
-                  >
-                    <Input
-                      placeholder="请输入公司名称"
-                      value={this.state.cName}
-                      style={{ width: "200px" }}
-                      onChange={(e) => {
-                        this.setState({ cName: e.target.value });
-                      }}
-                      className="height-input"
-                    />
-                  </FormItem>
-                  <FormItem
-                    className="three-item"
-                    {...formItemLayout}
-                    label={
-                      <span>
-                        <strong style={{ color: "#f00" }}>*</strong>联系人
-                      </span>
-                    }
-                  >
-                    <Input
-                      placeholder="请输入联系人名称"
-                      value={this.state.companyContacts}
-                      style={{ width: "200px" }}
-                      onChange={(e) => {
-                        this.setState({ companyContacts: e.target.value });
-                      }}
-                      className="height-input"
-                    />
-                  </FormItem>
-                  <FormItem
-                    className="three-item"
-                    {...formItemLayout}
-                    label={
-                      <span>
-                        <strong style={{ color: "#f00" }}>*</strong>联系人电话
-                      </span>
-                    }
-                  >
-                    <Input
-                      placeholder="请输入联系人电话"
-                      value={this.state.companyContactsMobile}
-                      style={{ width: "200px" }}
-                      onChange={(e) => {
-                        this.setState({
-                          companyContactsMobile: e.target.value,
-                        });
-                      }}
-                      className="height-input"
-                    />
-                  </FormItem>
-                  <FormItem
-                    className="three-item"
-                    {...formItemLayout}
-                    label="企业地址"
-                  >
-                    <Cascader
-                      options={areaSelect()}
-                      value={this.state.companyProvinceArr}
-                      placeholder="选择城市"
-                      style={{ width: "200px" }}
-                      onChange={(e) => {
-                        this.setState({ companyProvinceArr: e });
-                      }}
-                    />
-                  </FormItem>
-                  <FormItem className="three-item" {...formItemLayout} label="">
-                    <Input
-                      placeholder="请输入详细地址"
-                      value={this.state.companyAddress}
-                      style={{ width: "200px", marginLeft: "12em" }}
-                      onChange={(e) => {
-                        this.setState({ companyAddress: e.target.value });
-                      }}
-                      className="height-input"
-                    />
-                  </FormItem>
-                  <FormItem
-                    className="three-item"
-                    {...formItemLayout}
-                    label=""
-                  ></FormItem>
-                  <div className="clearfix">
-                    <FormItem
-                      labelCol={{ span: 3 }}
-                      wrapperCol={{ span: 16 }}
-                      label="备注"
-                    >
-                      <Input
-                        type="textarea"
-                        placeholder="请输入备注"
-                        rows={4}
-                        value={this.state.companyRemarks}
-                        onChange={(e) => {
-                          this.setState({ companyRemarks: e.target.value });
-                        }}
-                      />
-                    </FormItem>
-                  </div>
-                  <Button
-                    type="primary"
-                    style={{
-                      float: "right",
-                      marginTop: "10px",
-                      marginRight: "50px",
-                    }}
-                    onClick={() => {
-                      this.saveCompany(this.state.companyId);
-                    }}
-                  >
-                    保存
-                  </Button>
-                </div>
-              }
-              <p style={{ color: "red" }}>
-                提示:查看备注请点击表格左侧加号按钮~
-              </p>
-              <div className="patent-table" style={{ marginTop: "10px" }}>
-                <Spin spinning={this.state.loading}>
-                  <Table
-                    columns={this.state.companyColumns}
-                    dataSource={this.state.companys}
-                    scroll={{ x: 300, y: 0 }}
-                    bordered
-                    size="small"
-                    expandedRowRender={(record) => {
-                      return <p>{record.remarks}</p>;
-                    }}
-                    pagination={false}
-                  />
-                </Spin>
-              </div>
+              <CheckProject
+                  {...this.props}
+                  tid={this.state.tid}
+                  status={this.state.refundStatus}
+                  isPreviewPay={true}
+                  thirdInfoList={this.state.thirdInfoList}
+                  dataSource={this.state.payNodeList}
+                  outsourceRemarks={this.state.outsourceRemarks}
+                  fileList={this.state.pictureUrl}
+                  startType={this.state.startType}
+                  projectStatus={this.state.projectStatus}
+                  onRefresh={()=>{
+                    this.waiDetail();
+                    this.thirdTable(this.state.tid);
+                    this.payNodeTable(this.state.tid)
+                    this.loadData(this.state.page)
+                  }}
+              />
             </TabPane>
             {!this.props.isZxs || (this.state.isHuiyuan && this.props.isZxs) ? (
               <TabPane tab="订单详情" key="3">

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

@@ -72,7 +72,6 @@ const Task = React.createClass({
               id: thisdata.id, //任务ID
               taskName: thisdata.taskName, //名称
               cname: thisdata.cname, //项目品类
-              receiverName: thisdata.receiverName, //受理人
               projectStatus: thisdata.projectStatus, //项目状态
               taskStatus: thisdata.taskStatus, //任务状态
               taskDate: thisdata.taskDate, //分配时间