Browse Source

修复BUG

mentoswzq 4 years ago
parent
commit
99a86023b2

+ 86 - 93
js/component/manageCenter/components/checkProject/applyPaymentModal.js

@@ -1,6 +1,5 @@
 import React,{Component} from 'react';
 import {Button, Form, Input, message, Modal, Radio, Spin, InputNumber} from "antd";
-import propType from 'prop-types';
 import $ from "jquery";
 
 const layout = {
@@ -18,15 +17,6 @@ const formItemLayout = {
 };
 
 class ApplyPaymentModal extends Component{
-    // static propTypes = {
-    //     visible: PropTypes.bool.isRequired,
-    //     changeVisible: PropTypes.func.isRequired,
-    // }
-    //
-    // static defaultProps = {
-    //     visible: false,
-    //     changeVisible: ()=>{},
-    // }
 
 
     constructor(props) {
@@ -34,7 +24,6 @@ class ApplyPaymentModal extends Component{
         this.state={
             loading: false,
             paymentStatus: 0,
-            totalPrice: -1,
         }
     }
 
@@ -156,14 +145,14 @@ class ApplyPaymentModal extends Component{
                                                     setFieldsValue({
                                                         quantity:parseInt(previewPayInfor.quantity),
                                                         applicationAmount:(previewPayInfor.partyAmount ?
-                                                            parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) :
+                                                            ((parseFloat(previewPayInfor.totalAmount) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 :
                                                             parseFloat(previewPayInfor.totalAmount))/2
                                                     });
                                                 } else if(e.target.value === 2){
                                                     setFieldsValue({
                                                         quantity:parseInt(previewPayInfor.quantity),
                                                         applicationAmount:(previewPayInfor.partyAmount ?
-                                                            parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) :
+                                                            ((parseFloat(previewPayInfor.totalAmount) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 :
                                                             parseFloat(previewPayInfor.totalAmount))
                                                     });
                                                 }
@@ -203,44 +192,27 @@ class ApplyPaymentModal extends Component{
                                         }}
                                         label="官费(万元):"
                                     >
-                                        <div>***</div>
+                                        {/*costReduction  费减 0否 1 是*/}
+                                        {/*reductionAmount  费减金额*/}
+                                        {/*officialUnitPrice  官费单价*/}
+                                        <div>
+                                          {
+                                              previewPayInfor.costReduction === 1 ?
+                                                  previewPayInfor.reductionAmount :
+                                                  previewPayInfor.officialUnitPrice
+                                          }
+                                        </div>
                                     </Form.Item> : <div/>
                             }
-                            {/* 0正常 1专利 2软著 3审计 */}
-                            {
-                                this.props.projectType === 1 || this.props.projectType === 2?
-                                    <Form.Item
-                                        {...formItemLayout}
-                                        style={{
-                                            display:'flex'
-                                        }}
-                                        label="数量(个):"
-                                    >
-                                        {previewPayInfor.quantity}
-                                    </Form.Item>:
-                                    <Form.Item
-                                        {...formItemLayout}
-                                        style={{
-                                            display:'flex'
-                                        }}
-                                        label="数量(个):"
-                                    >
-                                        {getFieldDecorator('quantity', {
-                                            initialValue: parseInt(previewPayInfor.quantity),
-                                            rules: [{ required: false, message: '请输入數量!' }],
-                                        })(
-                                            <InputNumber min={0} onChange={(e)=>{
-                                                //软著 专利申请不需要计算,因为单价未知
-                                                if(!(this.props.projectType === 2 || (this.props.projectType === 1 && this.props.patentType === 0))){
-                                                    let num = previewPayInfor.unitPrice * e;
-                                                    this.setState({
-                                                        totalPrice: num
-                                                    })
-                                                }
-                                            }} disabled={previewPayInfor.quantity <= 1 || this.props.projectType === 3} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
-                                        )}
-                                    </Form.Item>
-                            }
+                            <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
+                                label="数量(个):"
+                            >
+                                {previewPayInfor.quantity}
+                            </Form.Item>
                             <Form.Item
                                 {...formItemLayout}
                                 style={{
@@ -248,62 +220,83 @@ class ApplyPaymentModal extends Component{
                                 }}
                                 label="总价(万元):"
                             >
-                                <div>{this.state.totalPrice > -1 ? this.state.totalPrice : previewPayInfor.totalAmount}</div>
-                                {/*{getFieldDecorator('totalPrice', {*/}
-                                {/*    rules: [{ required: false, message: '请输入总价!' }],*/}
-                                {/*})(*/}
-                                {/*    <Input disabled={true} style={{ width: '200px' }} placeholder="请输入总价" type={'number'}/>*/}
-                                {/*)}*/}
+                                <div>
+                                    {
+                                        previewPayInfor.totalAmount
+
+                                    }
+                                </div>
                             </Form.Item>
-                            {/*<Form.Item*/}
-                            {/*    {...formItemLayout}*/}
-                            {/*    style={{*/}
-                            {/*        display:'flex'*/}
-                            {/*    }}*/}
-                            {/*    label="已付(万元):"*/}
-                            {/*>*/}
-                            {/*    {getFieldDecorator('totalPrice', {*/}
-                            {/*        initialValue: previewPayInfor.partyAmount ? parseFloat(previewPayInfor.partyAmount) : 0,*/}
-                            {/*        rules: [{ required: false, message: '请输入已付金额!' }],*/}
-                            {/*    })(*/}
-                            {/*        <Input disabled={true} style={{ width: '200px' }} placeholder="请输入已付金额" type={'number'}/>*/}
-                            {/*    )}*/}
-                            {/*</Form.Item>*/}
-                            {
-                                this.props.projectType === 1 || this.props.projectType === 2 || this.props.type === 2?
-                                    <Form.Item
-                                        {...formItemLayout}
-                                        style={{
-                                            display:'flex'
-                                        }}
-                                        label="本次申请支付数量:"
-                                    >
-                                        {getFieldDecorator('quantity', {
-                                            initialValue: 1,
-                                            rules: [{ required: false, message: '请输入本次申请支付数量!' }],
-                                        })(
-                                            <Input disabled={previewPayInfor.quantity <= 1 || this.state.paymentStatus !== 0} style={{ width: '200px' }} placeholder="请输入本次申请支付数量" type={'number'}/>
-                                        )}
-                                    </Form.Item> : <div/>}
                             <Form.Item
                                 {...formItemLayout}
                                 style={{
                                     display:'flex'
                                 }}
+                                label="本次申请支付数量:"
+                            >
+                                {getFieldDecorator('quantity', {
+                                    initialValue: previewPayInfor.quantity,
+                                    rules: [{ required: false, message: '请输入本次申请支付数量!' }],
+                                })(
+                                    <InputNumber
+                                        disabled={previewPayInfor.quantity <= 1 || this.state.paymentStatus !== 0}
+                                        style={{ width: '200px' }}
+                                        precision={0}
+                                        placeholder="请输入本次申请支付数量"
+                                        onChange={(e)=>{
+                                            //0正常 1专利 2软著 3审计
+                                            //软著 专利申请不需要计算,因为单价未知
+                                            if(!(this.props.projectType === 2 || (this.props.projectType === 1 && this.props.patentType === 0))){
+                                                //官费
+                                                if(this.props.type === 2){
+                                                    this.props.form.setFieldsValue({
+                                                        applicationAmount: (previewPayInfor.costReduction === 1 ?
+                                                            previewPayInfor.reductionAmount :
+                                                            previewPayInfor.officialUnitPrice) * 1000000 * e / 1000000,
+                                                    });
+                                                }else {
+                                                    let num = previewPayInfor.unitPrice * 1000000 * e / 1000000;
+                                                    this.props.form.setFieldsValue({
+                                                        applicationAmount: num,
+                                                    });
+                                                }
+                                            }
+                                        }}
+                                    />
+                                )}
+                            </Form.Item>
+                            {/* 0正常 1专利 2软著 3审计 */}
+                            {this.props.projectType !== 2 ? <Form.Item
+                                {...formItemLayout}
+                                style={{
+                                    display:'flex'
+                                }}
                                 label="本次申请支付金额(万元):"
                             >
                                 {getFieldDecorator('applicationAmount', {
-                                    initialValue:this.state.paymentStatus === 1 ? (previewPayInfor.partyAmount ?
-                                        parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) :
-                                        parseFloat(previewPayInfor.totalAmount)) / 2 :  previewPayInfor.partyAmount ?
-                                        parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) :
-                                        parseFloat(previewPayInfor.totalAmount)
-                                        ,
+                                    initialValue:this.props.type === 2 ?(
+                                        ((previewPayInfor.costReduction === 1 ? previewPayInfor.reductionAmount : previewPayInfor.officialUnitPrice) * 1000000 * parseInt(previewPayInfor.quantity)) / 1000000
+                                    ): (
+                                        typeof previewPayInfor.totalAmount === 'number' && typeof previewPayInfor.partyAmount === 'number'?
+                                        (
+                                            this.state.paymentStatus === 1 ?
+                                            (previewPayInfor.partyAmount ?
+                                                ((parseFloat(previewPayInfor.totalAmount) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 :
+                                            parseFloat(previewPayInfor.totalAmount)) / 2 :
+                                            previewPayInfor.partyAmount ?
+                                                ((parseFloat(previewPayInfor.totalAmount) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 :
+                                            parseFloat(previewPayInfor.totalAmount)
+                                        ) : 0
+                                    ),
                                     rules: [{ required: true, message: '请输入本次申请支付金额!' }],
                                 })(
-                                    <Input disabled={this.state.paymentStatus !== 0} style={{ width: '200px' }} placeholder="请输入本次申请支付金额" type={'number'}/>
+                                    <InputNumber
+                                        min={0}
+                                        disabled={this.state.paymentStatus !== 0}
+                                        style={{ width: '200px' }}
+                                        placeholder="请输入本次申请支付金额"/>
                                 )}
-                            </Form.Item>
+                            </Form.Item> : <div/>}
                             <Form.Item
                                 {...formItemLayout}
                                 style={{

+ 105 - 108
js/component/manageCenter/components/checkProject/index.jsx

@@ -39,6 +39,88 @@ class CheckProject extends Component {
       PayNodeTableColunms: [],
       outsourceLogs: [],//审核日志
       selectOrderPayments: [],//支付列表
+      orderPaymentseColunms: [
+        {
+          title: '编号',
+          dataIndex: 'id',
+          key: 'id',
+        },
+        {
+          title: '节点编号',
+          dataIndex: 'nodeId',
+          key: 'nodeId',
+        },
+        {
+          title: '供应商名称',
+          dataIndex: 'companyName',
+          key: 'companyName',
+          render: (text, record) => {
+            return <span>
+              {text+'-'+record.tpcId}
+              {
+                text !== record.tpcName ?
+                    '('+record.tpcName+')' : ''
+              }
+            </span>
+          },
+        },
+        {
+          title: '支付类型',
+          dataIndex: 'chooseType',
+          key: 'chooseType',
+          render: (text, record) => {
+            return <span>
+              {/*0第三方 1催款 2官费*/}
+              {text === 0 ? '第三方' : text === 1 ? '催款' : '官费'}
+            </span>
+          },
+        },
+        {
+          title: '申请支付金额(万元)',
+          dataIndex: 'applicationAmount',
+          key: 'applicationAmount',
+        },
+        {
+          title: '申请支付数量',
+          dataIndex: 'quantity',
+          key: 'quantity',
+        },
+        {
+          title: '申请时间',
+          dataIndex: 'createTimes',
+          key: 'createTimes',
+        },
+        {
+          title: '状态',
+          dataIndex: 'status',
+          key: 'status',
+          render: (text, record) => {
+              return <div style={{
+                display: 'flex',
+                justifyContent: 'center',
+              }}>
+                <div style={{
+                  paddingRight: '15px',
+                }}>
+                  {
+                    text === 0 ? '审核中' :
+                        text === 1 ? '审核通过' :
+                            text === 2 ? '已驳回' :
+                                text === 3 ? '支付完成' : '已取消'
+                  }
+                </div>
+                <Button type="primary" size='small' onClick={()=>{
+                  this.setState({
+                    payRecordVisible: true,
+                    orderPaymentsId: record.id,
+                  })
+                }}>
+                  {this.operationJudgmentName(text)}
+                </Button>
+              </div>
+          },
+        },
+      ],//支付记录
     }
   }
 
@@ -57,6 +139,11 @@ class CheckProject extends Component {
       //付款节点表头
       PayNodeTableColunms: [
         {
+          title: '节点编号',
+          dataIndex: 'id',
+          key: 'id',
+        },
+        {
           title: '供应商名称',
           dataIndex: 'companyName',
           key: 'companyName',
@@ -300,7 +387,7 @@ class CheckProject extends Component {
             key: 'totalAmount',
             render: (text, record) => {
               if (text) {
-                return <span>***</span>
+                return <span>{text}</span>
               }
             },
           },
@@ -639,7 +726,7 @@ class CheckProject extends Component {
             key: 'totalAmount',
             render: (text, record) => {
               if (text) {
-                return <span>***</span>
+                return <span>{text}</span>
               }
             },
           },
@@ -1014,115 +1101,25 @@ class CheckProject extends Component {
         </div> : <div/>}
         {this.state.selectOrderPayments.length !== 0 ? <div className="outsourceLogConent">
           <div className="title">支付记录</div>
-          <div className="outsourceLogItem" style={{
-            fontWeight: 'bold',
-          }}>
-            <Row gutter={16}>
-              <Col className="gutter-row" span={2}>
-                <div>
-                  编号
-                </div>
-              </Col>
-              <Col className="gutter-row" span={5}>
-                <div className="gutter-box">
-                  供应商名称
-                </div>
-              </Col>
-              <Col className="gutter-row" span={3}>
-                <div className="gutter-box">
-                  支付类型
-                </div>
-              </Col>
-              <Col className="gutter-row" span={4}>
-                    <div className="gutter-box">
-                      {this.props.projectType === 2 || (this.props.projectType === 1 && this.props.patentType === 0) ? '申请支付数量' : '申请支付金额(万元)'}
-                    </div>
-              </Col>
-              <Col className="gutter-row" span={4}>
-                <div className="gutter-box">
-                  申请时间
-                </div>
-              </Col>
-              <Col className="gutter-row" span={6}>
-                <div className="gutter-box">
-                  状态
-                </div>
-              </Col>
-            </Row>
-          </div>
-          <div className="outsourceLogList" style={{paddingTop:'5px'}}>
-            {
-              this.state.selectOrderPayments.map((value,index)=>(
-                  <div key={index} className="orderPayItem" onClick={()=>{
+          <Spin spinning={this.state.loading}>
+            <Form layout="horizontal">
+              <Table
+                  pagination={false}
+                  columns={this.state.orderPaymentseColunms}
+                  dataSource={this.state.selectOrderPayments}
+                  onRowClick={(record)=>{
                     this.setState({
                       payRecordVisible: true,
-                      orderPaymentsId: value.id,
+                      orderPaymentsId: record.id,
                     })
-                  }}>
-                    <Row gutter={16}>
-                      <Col className="gutter-row" span={2}>
-                        <div>
-                          {value.id}
-                        </div>
-                      </Col>
-                      <Col className="gutter-row" span={5}>
-                        <div className="gutter-box">
-                          {value.companyName+'-'+value.tpcId}
-                          {
-                            value.companyName !== value.tpcName ?
-                                '('+value.tpcName+')' : ''
-                          }
-                        </div>
-                      </Col>
-                      <Col className="gutter-row" span={3}>
-                        <div className="gutter-box">
-                          {/*0第三方 1催款 2官费*/}
-                          {value.chooseType === 0 ? '第三方' : value.chooseType === 1 ? '催款' : '官费'}
-                        </div>
-                      </Col>
-                      <Col className="gutter-row" span={4}>
-                        <div className="gutter-box">
-                          {
-                            this.props.projectType === 2 || (this.props.projectType === 1 && this.props.patentType === 0) ?
-                                value.quantity:
-                                value.applicationAmount
-                          }
-                        </div>
-                      </Col>
-                      <Col className="gutter-row" span={4}>
-                        <div className="gutter-box">
-                          {value.createTimes}
-                        </div>
-                      </Col>
-                      <Col className="operationItem" span={6}>
-                        <div className="gutter-box" style={{
-                          width: '100%',
-                          display: 'flex',
-                          justifyContent: 'center',
-                        }}>
-                          <div className="operation">
-                            {
-                              value.status === 0 ? '审核中' :
-                                  value.status === 1 ? '审核通过' :
-                                      value.status === 2 ? '已驳回' :
-                                          value.status === 3 ? '支付完成' : '已取消'
-                            }
-                          </div>
-                          <Button type="primary" size='small' onClick={()=>{
-                              this.setState({
-                                  payRecordVisible: true,
-                                  orderPaymentsId: value.id,
-                              })
-                          }}>
-                            {this.operationJudgmentName(value.status)}
-                          </Button>
-                        </div>
-                      </Col>
-                    </Row>
-                  </div>
-              ))
-            }
-          </div>
+                  }}
+                  scroll={{ x: 'max-content', y: 0 }}
+                  bordered
+                  size="small"
+              />
+              <Col span={24} offset={9} style={{ marginTop: '15px' }}/>
+            </Form>
+          </Spin>
         </div> : <div/>}
         {/*
             申请付款

+ 12 - 17
js/component/manageCenter/components/checkProject/payRecord.js

@@ -424,8 +424,8 @@ class PayRecord extends Component{
                                 className='formItemStyle'
                                 label="数量:"
                             >
-                                {getFieldDecorator('quantity', {
-                                    initialValue: parseInt(paymentDetails.quantity),
+                                {getFieldDecorator('initialQuantity', {
+                                    initialValue: parseInt(paymentDetails.initialQuantity),
                                     rules: [{ required: false, message: '请输入數量!' }],
                                 })(
                                     <Input disabled={true} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
@@ -455,8 +455,8 @@ class PayRecord extends Component{
                                         className='formItemStyle'
                                         label="本次申请支付数量:"
                                     >
-                                        {getFieldDecorator('initialQuantity', {
-                                            initialValue: paymentDetails.initialQuantity,
+                                        {getFieldDecorator('quantity', {
+                                            initialValue: paymentDetails.quantity,
                                             rules: [{ required: true, message: '请输入本次申请支付数量!' }],
                                         })(
                                             <Input
@@ -514,13 +514,13 @@ class PayRecord extends Component{
                                 <div className='payList'>
                                     {
                                         paymentLogs.map((value,key)=>(
-                                            <div key={key} className='payitem'>
-                                                <div style={{width:'83px'}}>{value.aname+':'}</div>
-                                                <div style={{
-                                                    paddingLeft:'15px',
-                                                    paddingRight:'15px',
-                                                    minWidth: '200px',
-                                                    maxWidth: '67%',
+                                            <div key={key} style={{
+                                                paddingBottom: '2px',
+                                            }}>
+                                                <span style={{paddingRight:'8px'}}>{value.aname+':'}</span>
+                                                {value.createTimes}
+                                                <span style={{
+                                                    paddingLeft:'8px',
                                                     wordBreak: 'break-all'
                                                 }}>
                                                     {
@@ -528,12 +528,7 @@ class PayRecord extends Component{
                                                             value.status === 1 ? '(通过)': '(驳回)'
                                                     }
                                                     {value.remarks}
-                                                </div>
-                                                <div>
-                                                    {
-                                                        value.createTimes
-                                                    }
-                                                </div>
+                                                </span>
                                             </div>
                                         ))
                                     }

+ 47 - 0
js/component/manageCenter/order/orderNew/costAuditList/component/orderPaymentModal.js

@@ -18,6 +18,22 @@ class OrderPaymentModal extends Component{
                     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',
@@ -33,6 +49,37 @@ class OrderPaymentModal extends Component{
                     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: '申请时间',

+ 3 - 17
js/component/manageCenter/order/orderNew/costAuditList/detailsModal/index.js

@@ -107,23 +107,9 @@ class DetailsModal extends Component{
                         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
-                        })
+                        companyNameArr.push(thisData.companyName);
+                        thisData.key = i;
+                        theArr.push(thisData)
                     }
 
                     for(let d=0;d<theArr.length;d++){

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

@@ -840,23 +840,9 @@ const outsourcingPro = Form.create()(
               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
-              })
+              companyNameArr.push(thisData.companyName);
+              thisData.key = i;
+              theArr.push(thisData);
             }
             if (!allTotalAmount) {
               allTotalAmount = 0

+ 22 - 27
js/component/manageCenter/project/task/myTask.jsx

@@ -51,6 +51,7 @@ import ShowModalDiv from '@/showModal.jsx'
 import CheckProject from '../../components/checkProject'
 import NewSupplier from './newSupplier';
 import ImgList from "../../../common/imgList";
+import OperationPayNode from "./operationPayNode";
 
 const confirm = Modal.confirm
 const FormItem = Form.Item
@@ -812,7 +813,7 @@ const Task = React.createClass({
             key: 'totalAmount',
             render: (text, record) => {
               if (text) {
-                return <span>***</span>
+                return <span>{text}</span>
               }
             },
           },
@@ -1151,7 +1152,7 @@ const Task = React.createClass({
             key: 'totalAmount',
             render: (text, record) => {
               if (text) {
-                return <span>***</span>
+                return <span>{text}</span>
               }
             },
           },
@@ -2586,27 +2587,10 @@ const Task = React.createClass({
             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
-              costReduction: thisData.costReduction,//费减
-              officialCost: thisData.officialCost,//官费
-              type: thisData.type,   //0其他 1专利申请 2专利买卖
-              patentType: thisData.type,   //专利名称类型   0实用新型 1发明专利 2外观专利 3 其他
-            })
+            companyNameArr.push(thisData.companyName);
+            thisData.key = i;
+            thisData.patentType = thisData.type;
+            theArr.push(thisData);
             type=thisData.type
             patentNameType= thisData.patentNameType
           }
@@ -2951,6 +2935,9 @@ const Task = React.createClass({
   handleCancelclose() {
     this.setState({
       PayNodeVisible: false,
+      payNodeInfor: {},
+      ThirdId: '',
+
       ThirdListVisible: false,
       thirdCompanyName: '', //第三方名称
       paySubjectName: '', //付款科目名称
@@ -2960,7 +2947,6 @@ const Task = React.createClass({
       payNodeQuantity: 1,
       currentTotalPrice: '', //总价
       thirdRemarks: '',
-      ThirdId: '',
       thirdUrgent: 0, //加急状态
     })
   },
@@ -3069,6 +3055,7 @@ const Task = React.createClass({
       currentTotalPrice: record.totalAmount, //总价
       partyTimes: record.partyTimes,
       paySubjectName: record.dunType,
+      payNodeInfor: record,            //付款节点详情
     })
   },
   render() {
@@ -3287,7 +3274,7 @@ const Task = React.createClass({
                             value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
                             this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
                             onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
-                    </div> 
+                    </div>
         </div> */}
         <div className="patent-table">
           <Spin spinning={this.state.loading}>
@@ -4442,7 +4429,7 @@ const Task = React.createClass({
                   {/*<div className="clearfix">
 										<FormItem className="half-item"
 										    {...formItemLayout}
-										    label="上传协议文件" style={{height:"auto"}}>  
+										    label="上传协议文件" style={{height:"auto"}}>
 										     <Upload header={{authorization: 'authorization-text'}} action={globalConfig.context + "/api/admin/outsourceOrg/uploadOutsourceFile"}
 													data={(e)=>{
 														return {
@@ -5768,7 +5755,7 @@ const Task = React.createClass({
                 thirdUnitPrice: '', //单价
                 thirdQuantity: '', //数量
                 currentTotalPrice: '', //总价
-                thirdMaterial: '', //有无材料
+                thirdMaterial: 0, //有无材料
                 thirdUrgent: 0, //加急情况
                 thirdRemarks: '',
                 audit: 0,
@@ -5930,6 +5917,14 @@ const Task = React.createClass({
             </Spin>
           </Form>
         </Modal> : <div/>}
+        {/*<OperationPayNode*/}
+        {/*    visible={this.state.PayNodeVisible}*/}
+        {/*    onCancel={this.handleCancelclose}*/}
+        {/*    thirdId={this.state.ThirdId}*/}
+        {/*    thirdInfoList={this.state.thirdInfoList}*/}
+        {/*    supplierList={this.state.PayNodeCompany}*/}
+        {/*    payNodeInfor={this.state.payNodeInfor}*/}
+        {/*/>*/}
       </div>
     )
   },

+ 7 - 10
js/component/manageCenter/project/task/newSupplier.js

@@ -33,6 +33,7 @@ class NewSupplier extends Component{
             officialCost: "", //是否有官费
             costReduction: "", //是否有费减
         }
+        this.calculatedAmount = this.calculatedAmount.bind(this);
     }
 
     componentDidMount() {
@@ -99,7 +100,7 @@ class NewSupplier extends Component{
     // 第三方信息自动计算总金额
     calculatedAmount() {
         let currentTotalPrice
-        currentTotalPrice = this.state.thirdUnitPrice * this.state.thirdQuantity
+        currentTotalPrice = (this.state.thirdQuantity * 1000000) * (this.state.thirdUnitPrice * 1000000) / 1000000 / 1000000
         currentTotalPrice = currentTotalPrice.toFixed(4)
         this.setState({
             currentTotalPrice: currentTotalPrice,
@@ -167,7 +168,7 @@ class NewSupplier extends Component{
             data.urgent = this.state.thirdUrgent;       //加急
             data.calculation = 1;                       //0 其他 1软著 2专利
         }else{                                          //非软著类需要传总金额
-            data.totalAmount = this.state.thirdQuantity * this.state.thirdUnitPrice;
+            data.totalAmount = (this.state.thirdQuantity * 1000000) * (this.state.thirdUnitPrice * 1000000) / 1000000 / 1000000;
             data.calculation = 0;                       //0 其他 1软著 2专利
         }
         if(this.props.projectType === 1 && this.props.patentType === 0){
@@ -290,7 +291,6 @@ class NewSupplier extends Component{
                                         value={this.state.thirdUnitPrice}
                                         placeholder="请输入单价(必填项)"
                                         required="required"
-                                        precision={6}
                                         onBlur={this.calculatedAmount}
                                         onChange={(value) => {
                                             this.setState({
@@ -322,14 +322,14 @@ class NewSupplier extends Component{
                             {/*专利 的专利申请 和 软著没有总价*/}
                             {this.props.projectType !== 2 && this.props.patentType !==0 ?<div className="clearfix">
                                 <Form.Item {...formItemLayout} label="总价(万元)">
-                                    <span>{this.state.thirdQuantity * this.state.thirdUnitPrice}</span>
+                                    <span>{(this.state.thirdQuantity * 1000000) * (this.state.thirdUnitPrice * 1000000) / 1000000 / 1000000}</span>
                                 </Form.Item>
                             </div> : <div/>}
                             {this.props.projectType === 2 ? <div>
                                 <div className="clearfix">
                                     <Form.Item {...formItemLayout} label="材料">
                                         <Select
-                                            value={getMaterialStatus(this.state.thirdMaterial)}
+                                            value={this.state.thirdMaterial}
                                             onChange={(val) => {
                                                 this.setState({
                                                     thirdMaterial: val,
@@ -344,8 +344,8 @@ class NewSupplier extends Component{
                                             style={{ width: '220px' }}
                                             defaultValue="0"
                                         >
-                                            <Option value="0">无材料</Option>
-                                            <Option value="1">有材料</Option>
+                                            <Option value={0}>无材料</Option>
+                                            <Option value={1}>有材料</Option>
                                         </Select>
                                         <span className="mandatory">*</span>
                                     </Form.Item>
@@ -438,7 +438,6 @@ class NewSupplier extends Component{
                                                 defaultValue="0"
                                             >
                                                 {/*0无审计 1年审 2专审*/}
-                                                <Option value={0}>无审计</Option>
                                                 <Option value={1}>年审</Option>
                                                 <Option value={2}>专审</Option>
                                             </Select>
@@ -449,7 +448,6 @@ class NewSupplier extends Component{
                                         <Form.Item {...formItemLayout} label="公司资产(万元)">
                                             <InputNumber
                                                 value={this.state.assets}
-                                                precision={6}
                                                 placeholder="请输入公司资产"
                                                 required="required"
                                                 onChange={(value) => {
@@ -466,7 +464,6 @@ class NewSupplier extends Component{
                                         <Form.Item {...formItemLayout} label="收入(万元)">
                                             <InputNumber
                                                 value={this.state.income}
-                                                precision={6}
                                                 placeholder="请输入收入"
                                                 required="required"
                                                 onChange={(value) => {

+ 316 - 0
js/component/manageCenter/project/task/operationPayNode.js

@@ -0,0 +1,316 @@
+import React,{Component} from 'react';
+import {Button, DatePicker, Form, Input, message, Modal, Select, Spin, InputNumber} from "antd";
+import { cuiJieDian } from '@/dataDic.js'
+import moment from "moment";
+import PropTypes from 'prop-types';
+import $ from "jquery";
+
+const formItemLayout = {
+    labelCol: { span: 8 },
+    wrapperCol: { span: 14 },
+}
+
+class OperationPayNode extends Component{
+    constructor(props) {
+        super(props);
+        this.state={
+            loading: false,
+            thirdCompanyName: '',   //供应商名称
+            paySubject: [],
+            paySubjectName: '',     //可简化
+        }
+    }
+
+    componentDidMount() {
+        this.getCsortData()
+    }
+
+    //保存付款节点
+    savePayNode() {
+        let api
+        if (this.props.thirdId) {
+            //修改
+            api = '/api/admin/company/updatePaymentNode'
+        } else {
+            //新增
+            api = '/api/admin/company/addPaymentNode'
+        }
+
+        let customerId=0;
+        this.props.supplierList.some((value)=>{
+            if(value.companyName === this.state.thirdCompanyName){
+                customerId = value.id
+                return true;
+            }
+        });
+        if(!this.state.thirdCompanyName){
+            message.error('请选择供应商名称');
+            return;
+        }
+        if(!this.state.paySubjectName){
+            message.error('请选择付款科目');
+            return;
+        }
+        if(!this.state.payNodeQuantity){
+            message.error('请输入数量');
+            return;
+        }
+        let data = {
+            id: this.props.thirdId, //id
+            tid: this.state.tid, //订单编号
+            cid: customerId,//对应的第三方信息
+            companyName: this.state.thirdCompanyName.split('-')[0], //第三方名称
+            quantity: this.state.payNodeQuantity, //数量
+            dunType: this.state.dunType, //催款节点
+            projectType: this.state.cSort, //项目分类
+        }
+        if(this.state.paySubjectName === '0'){
+            if(!this.state.partyTimes){
+                message.error('请选择付款时间');
+                return;
+            }
+            data.partyTimes = this.state.partyTimes //付款时间
+        }
+        if(this.props.projectType !== 2){                   //其他类型   0正常 1专利 2软著 3审计
+            data.totalAmount = this.state.currentTotalPrice   //总价
+            data.unitPrice = this.state.thirdUnitPrice        //单价
+        }
+        this.setState({
+            loading: true,
+        })
+        $.ajax({
+            url: globalConfig.context + api,
+            method: 'post',
+            dataType: 'json',
+            crossDomain: false,
+            data: data,
+        }).done(
+            function (data) {
+                this.setState({
+                    loading: false,
+                })
+                if (!data.error.length) {
+                    message.success('保存成功!');
+                    this.props.onCancel();
+                } else {
+                    message.warning(data.error[0].message)
+                }
+            }.bind(this)
+        )
+    }
+
+    // 付款节点自动计算总金额
+    payNodeCalculatedAmount(num) {
+        let currentTotalPrice,quantity,unitPrice;
+        //获取当前供应商名称对应的单价并更新
+        this.props.thirdInfoList.forEach((item) => {
+            if (item.companyName === this.state.thirdCompanyName) {
+                currentTotalPrice = num ? item.unitPrice * num : item.quantity * item.unitPrice;
+                currentTotalPrice = currentTotalPrice.toFixed(6);
+                quantity = num ? num : item.quantity;
+                unitPrice = item.unitPrice;
+            }
+        })
+        this.props.from.setFieldsValue({
+            quantity :num ? num : quantity
+        })
+        if(this.props.projectType !== 2){
+            this.setState({
+                currentTotalPrice: currentTotalPrice,
+                thirdUnitPrice: unitPrice
+            })
+        }
+    }
+
+    // 获取csort下的数据
+    getCsortData() {
+        cuiJieDian.map((item) => {
+            if (item.value == localStorage.getItem('cSort')) {
+                this.setState({
+                    paySubject: item.children,
+                })
+            }
+        })
+    }
+
+    render() {
+        const { getFieldDecorator } = this.props.form;
+        const { payNodeInfor } = this.props;
+        return (
+            <Modal
+                visible={this.props.visible}
+                onCancel={this.props.onCancel}
+                width={800}
+                title={this.props.thirdId ? "修改付款节点" : "新增付款节点"}
+                footer=""
+                className="admin-desc-content"
+            >
+                <Form
+                    layout="horizontal"
+                    style={{ paddingBottom: '40px' }}
+                >
+                    <Spin spinning={this.state.loading}>
+                        <div className="clearfix">
+                            <div className="clearfix">
+                                <Form.Item {...formItemLayout} label="供应商名称">
+                                    {getFieldDecorator('companyName', {
+                                        initialValue: payNodeInfor.companyName,
+                                        rules: [{ required: true, message: '请选择供应商' }],
+                                    })(
+                                        <Select
+                                            onChange={(val) => {
+                                                this.setState(
+                                                    {
+                                                        thirdCompanyName: val,
+                                                    },
+                                                    () => this.payNodeCalculatedAmount()
+                                                ) //更新完state调用
+                                            }}
+                                            defaultValue="请选择供应商"
+                                            style={{ width: 220 }}
+                                        >
+                                            {this.props.supplierList.map((item, index) => (
+                                                <Select.Option value={item.companyName} key={index}>
+                                                    {item.companyName}
+                                                </Select.Option>
+                                            ))}
+                                        </Select>
+                                    )}
+                                </Form.Item>
+                            </div>
+
+                            <div className="clearfix">
+                                <Form.Item {...formItemLayout} label="付款科目">
+                                    {getFieldDecorator('dunType', {
+                                        initialValue: payNodeInfor.dunType,
+                                        rules: [{ required: true, message: '请选择付款科目' }],
+                                    })(
+                                    <Select
+                                        onChange={(val) => {
+                                            this.setState({
+                                                paySubjectName: val,
+                                                dunType: val,
+                                            })
+                                        }}
+                                        defaultValue="请选择付款科目"
+                                        style={{ width: 220 }}
+                                    >
+                                        {this.state.paySubject.map((item, index) => (
+                                            <Select.Option value={item.value} key={index}>
+                                                {item.key}
+                                            </Select.Option>
+                                        ))}
+                                        <Select.Option key={0} value={0}>
+                                            自定义
+                                        </Select.Option>
+                                    </Select>)}
+                                </Form.Item>
+                            </div>
+                            <div className="clearfix">
+                                {parseInt(this.state.paySubjectName) === 0 ? <Form.Item {...formItemLayout} label="付款时间">
+                                    {getFieldDecorator('partyTimes', {
+                                        initialValue: payNodeInfor.partyTimes,
+                                        rules: [{ required: true, message: '请选择付款时间' }],
+                                    })(
+                                        <DatePicker
+                                            // value={
+                                            //     this.state.partyTimes
+                                            //         ? moment(this.state.partyTimes)
+                                            //         : null
+                                            // }
+                                            // onChange={(data, dataString) => {
+                                            //     this.setState({ partyTimes: dataString })
+                                            // }}
+                                            style={{ width: '220px' }}
+                                        />
+                                    )}
+                                </Form.Item> : <div/>}
+                            </div>
+                            <div className="clearfix">
+                                <Form.Item {...formItemLayout} label="数量">
+                                    {getFieldDecorator('quantity', {
+                                        initialValue: payNodeInfor.quantity,
+                                        rules: [{ required: true, message: '请输入数量' }],
+                                    })(
+                                        <InputNumber
+                                            min={1}
+                                            precision={0}
+                                            disabled={payNodeInfor.quantity <= 1}
+                                            placeholder="请输入数量"
+                                            onChange={(e) => {
+                                                this.payNodeCalculatedAmount(e)
+                                            }}
+                                            style={{ width: '220px' }}
+                                        />
+                                    )}
+                                </Form.Item>
+                            </div>
+                            {this.props.projectType !== 2 ? <div className="clearfix">
+                                <Form.Item {...formItemLayout} label="总价(万元)">
+                                    {getFieldDecorator('quantity', {
+                                        initialValue: payNodeInfor.quantity,
+                                        rules: [{ required: true, message: '请输入数量' }],
+                                    })(
+                                        <Input
+                                            type={'number'}
+                                            value={this.state.currentTotalPrice}
+                                            placeholder="请输入总价"
+                                            onChange={(e) =>
+                                                this.setState({
+                                                    currentTotalPrice: e.target.value,
+                                                })
+                                            }
+                                            style={{ width: '220px' }}
+                                        />
+                                    )}
+                                </Form.Item>
+                            </div> : <div/>}
+                            <div className="clearfix">
+                                <div className="addSave" style={{ marginTop: '15px' }}>
+                                    <Button
+                                        className="cancel"
+                                        type="primary"
+                                        onClick={this.savePayNode}
+                                        style={{ marginLeft: '300px' }}
+                                        htmlType="submit"
+                                    >
+                                        保存
+                                    </Button>
+                                    <Button
+                                        className="cancel"
+                                        type="ghost"
+                                        onClick={this.handleCancelclose}
+                                        style={{ marginLeft: '50px' }}
+                                    >
+                                        取消
+                                    </Button>
+                                </div>
+                            </div>
+                        </div>
+                    </Spin>
+                </Form>
+            </Modal>
+        )
+    }
+}
+
+OperationPayNode.propTypes = {
+    visible : PropTypes.bool.isRequired,                            //控制组件是否显示
+    onCancel : PropTypes.func.isRequired,                           //取消方法
+    thirdId : PropTypes.number.isRequired,                          //供应商ID
+    thirdInfoList: PropTypes.array.isRequired,                      //第三方信息列表
+    supplierList: PropTypes.array.isRequired,                       //第三方信息列表已存在的供应商名字和id信息  用于添加付款节点时的选择对应供应商
+    payNodeInfor: PropTypes.object.isRequired,                      //选择的支付节点信息(来自支付节点列表)
+    projectType: PropTypes.number.isRequired,                       //项目类型  0正常 1专利 2软著 3审计
+}
+
+OperationPayNode.defaultProps = {
+    visible : false,
+    onCancel: ()=>{},
+    thirdInfoList: [],
+    supplierList: [],
+    payNodeInfor: {},
+}
+
+const WrappedNormalLoginForm = Form.create()(OperationPayNode);
+export default WrappedNormalLoginForm;