|
@@ -6,8 +6,7 @@ import '@/manageCenter/financialManage/distribute/public.less'
|
|
|
import '@/manageCenter/financialManage/distribute/shouKuan.less'
|
|
|
import OrderDetail from '../../order/orderNew/changeComponent/orderDetail'
|
|
|
import ResolutionDetail from '@/resolutionDetail'
|
|
|
-import {
|
|
|
- Button,
|
|
|
+import {Button,
|
|
|
Form,
|
|
|
Input,
|
|
|
Select,
|
|
@@ -32,8 +31,7 @@ import { areaSelect } from '@/NewDicProvinceList'
|
|
|
import { ChooseList } from '../../order/orderNew/chooseList'
|
|
|
import OrderRiZi from '@/orderRiZi.jsx'
|
|
|
import './table.less'
|
|
|
-import {
|
|
|
- getMaterialStatus,
|
|
|
+import {getMaterialStatus,
|
|
|
getUrgentStatus,
|
|
|
getProcessStatus,
|
|
|
getApproval,
|
|
@@ -43,8 +41,7 @@ import {
|
|
|
splitUrl,
|
|
|
getboutique,
|
|
|
ShowModal,
|
|
|
- getRefundStatus,
|
|
|
-} from '@/tools'
|
|
|
+ getRefundStatus,} from '@/tools'
|
|
|
import { taskStatus, projectStatus, cuiJieDian } from '@/dataDic.js'
|
|
|
import ShowModalDiv from '@/showModal.jsx'
|
|
|
|
|
@@ -52,7 +49,7 @@ import CheckProject from '../../components/checkProject'
|
|
|
import NewSupplier from './newSupplier';
|
|
|
import ImgList from "../../../common/imgList";
|
|
|
import OperationPayNode from "./operationPayNode";
|
|
|
-
|
|
|
+import {object} from "prop-types";
|
|
|
const confirm = Modal.confirm
|
|
|
const FormItem = Form.Item
|
|
|
const { TabPane } = Tabs
|
|
@@ -218,6 +215,7 @@ const Task = React.createClass({
|
|
|
},
|
|
|
getInitialState() {
|
|
|
return {
|
|
|
+ audit: 1,
|
|
|
projectType: '', //项目分类
|
|
|
paySubject: [],
|
|
|
paySubjectName: '', //付款科目名称
|
|
@@ -695,7 +693,11 @@ const Task = React.createClass({
|
|
|
key: 'unitPrice',
|
|
|
render: (text, record) => {
|
|
|
if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -714,9 +716,11 @@ const Task = React.createClass({
|
|
|
dataIndex: 'totalAmount',
|
|
|
key: 'totalAmount',
|
|
|
render: (text, record) => {
|
|
|
- if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
- }
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -793,7 +797,11 @@ const Task = React.createClass({
|
|
|
key: 'unitPrice',
|
|
|
render: (text, record) => {
|
|
|
if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -812,9 +820,11 @@ const Task = React.createClass({
|
|
|
dataIndex: 'totalAmount',
|
|
|
key: 'totalAmount',
|
|
|
render: (text, record) => {
|
|
|
- if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
- }
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -903,7 +913,11 @@ const Task = React.createClass({
|
|
|
key: 'unitPrice',
|
|
|
render: (text, record) => {
|
|
|
if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -938,9 +952,11 @@ const Task = React.createClass({
|
|
|
dataIndex: 'totalAmount',
|
|
|
key: 'totalAmount',
|
|
|
render: (text, record) => {
|
|
|
- if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
}
|
|
|
+ </span>
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -1033,7 +1049,11 @@ const Task = React.createClass({
|
|
|
key: 'unitPrice',
|
|
|
render: (text, record) => {
|
|
|
if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -1052,9 +1072,11 @@ const Task = React.createClass({
|
|
|
dataIndex: 'totalAmount',
|
|
|
key: 'totalAmount',
|
|
|
render: (text, record) => {
|
|
|
- if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
}
|
|
|
+ </span>
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -1132,7 +1154,11 @@ const Task = React.createClass({
|
|
|
key: 'unitPrice',
|
|
|
render: (text, record) => {
|
|
|
if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -1151,9 +1177,11 @@ const Task = React.createClass({
|
|
|
dataIndex: 'totalAmount',
|
|
|
key: 'totalAmount',
|
|
|
render: (text, record) => {
|
|
|
- if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
- }
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -1181,9 +1209,11 @@ const Task = React.createClass({
|
|
|
dataIndex: 'income',
|
|
|
key: 'income',
|
|
|
render: (text, record) => {
|
|
|
- if (text) {
|
|
|
- return <span>{text}</span>
|
|
|
- }
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -1283,7 +1313,11 @@ const Task = React.createClass({
|
|
|
dataIndex: 'totalAmount',
|
|
|
key: 'totalAmount',
|
|
|
render: (text, record) => {
|
|
|
- return <span>{text}</span>
|
|
|
+ return <span>
|
|
|
+ {
|
|
|
+ isNaN(text) ? text : parseFloat(text)
|
|
|
+ }
|
|
|
+ </span>
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -3055,8 +3089,17 @@ const Task = React.createClass({
|
|
|
currentTotalPrice: record.totalAmount, //总价
|
|
|
partyTimes: record.partyTimes,
|
|
|
paySubjectName: record.dunType,
|
|
|
- payNodeInfor: record, //付款节点详情
|
|
|
- })
|
|
|
+ });
|
|
|
+ let obj = JSON.parse(JSON.stringify(record));
|
|
|
+ this.state.paySubject.some((value)=>{
|
|
|
+ if(value.key === obj.dunType){
|
|
|
+ obj.dunType = value.value;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.setState({
|
|
|
+ payNodeInfor: obj, //付款节点详情
|
|
|
+ });
|
|
|
},
|
|
|
render() {
|
|
|
const formItemLayout = {
|
|
@@ -3316,6 +3359,18 @@ const Task = React.createClass({
|
|
|
onCancel={this.visitCancel}
|
|
|
>
|
|
|
<Tabs
|
|
|
+ tabBarExtraContent={
|
|
|
+ <div style={{fontWeight:'bold',paddingRight:'15px'}}>
|
|
|
+ <span>
|
|
|
+ 项目名称:
|
|
|
+ <span style={{color:'#F00',paddingRight:'5px'}}>{this.state.taskName}</span>
|
|
|
+ </span>
|
|
|
+ <span style={{marginLeft:'15px'}}>
|
|
|
+ 项目编号:
|
|
|
+ <span style={{color:'#F00',paddingRight:'5px'}}>{this.state.id}</span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
activeKey={this.state.activeKey}
|
|
|
onChange={(e) => {
|
|
|
this.callback(e)
|
|
@@ -4400,7 +4455,7 @@ const Task = React.createClass({
|
|
|
span={24}
|
|
|
offset={9}
|
|
|
style={{ marginTop: '15px' }}
|
|
|
- ></Col>
|
|
|
+ />
|
|
|
</Form>
|
|
|
</Spin>
|
|
|
</div>
|
|
@@ -4832,7 +4887,22 @@ const Task = React.createClass({
|
|
|
footer=""
|
|
|
className="admin-desc-content"
|
|
|
>
|
|
|
- <Tabs activeKey={this.state.activeKey} onChange={this.orderChange}>
|
|
|
+ <Tabs
|
|
|
+ tabBarExtraContent={
|
|
|
+ <div style={{fontWeight:'bold',paddingRight:'15px'}}>
|
|
|
+ <span>
|
|
|
+ 项目名称:
|
|
|
+ <span style={{color:'#F00',paddingRight:'5px'}}>{this.state.taskName}</span>
|
|
|
+ </span>
|
|
|
+ <span style={{marginLeft:'15px'}}>
|
|
|
+ 项目编号:
|
|
|
+ <span style={{color:'#F00',paddingRight:'5px'}}>{this.state.id}</span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ activeKey={this.state.activeKey}
|
|
|
+ onChange={this.orderChange}
|
|
|
+ >
|
|
|
<TabPane tab="项目概况" key="1">
|
|
|
<div className="clearfix">
|
|
|
<FormItem
|
|
@@ -5758,7 +5828,7 @@ const Task = React.createClass({
|
|
|
thirdMaterial: 0, //有无材料
|
|
|
thirdUrgent: 0, //加急情况
|
|
|
thirdRemarks: '',
|
|
|
- audit: 0,
|
|
|
+ audit: 1,
|
|
|
assets: '',
|
|
|
income: '',
|
|
|
})
|
|
@@ -5771,160 +5841,25 @@ const Task = React.createClass({
|
|
|
thirdCompanyName: data.thirdCompanyName
|
|
|
})
|
|
|
}}/> : <div/>}
|
|
|
- {this.state.PayNodeVisible ? <Modal
|
|
|
- visible={this.state.PayNodeVisible}
|
|
|
- onCancel={this.handleCancelclose}
|
|
|
- width={800}
|
|
|
- title={this.state.ThirdId ? "修改付款节点" : "新增付款节点"}
|
|
|
- footer=""
|
|
|
- // width={1300}
|
|
|
- className="admin-desc-content"
|
|
|
- >
|
|
|
- <Form
|
|
|
- layout="horizontal"
|
|
|
- // onSubmit={this.handleSubmit1}
|
|
|
- // id="demand-form"
|
|
|
- style={{ paddingBottom: '40px' }}
|
|
|
- >
|
|
|
- <Spin spinning={this.state.loading}>
|
|
|
- <div className="clearfix">
|
|
|
- <div className="clearfix">
|
|
|
- <FormItem {...formItemLayout} label="供应商名称">
|
|
|
- <Select
|
|
|
- value={this.state.thirdCompanyName}
|
|
|
- onChange={(val) => {
|
|
|
- this.setState(
|
|
|
- {
|
|
|
- thirdCompanyName: val,
|
|
|
- },
|
|
|
- () => this.payNodeCalculatedAmount()
|
|
|
- ) //更新完state调用
|
|
|
- }}
|
|
|
- defaultValue="请选择供应商"
|
|
|
- style={{ width: 220 }}
|
|
|
- >
|
|
|
- {this.state.PayNodeCompany.map((item, index) => (
|
|
|
- <Select.Option value={item.companyName} key={index}>
|
|
|
- {item.companyName}
|
|
|
- </Select.Option>
|
|
|
- ))}
|
|
|
- </Select>
|
|
|
- <span className="mandatory">*</span>
|
|
|
- </FormItem>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className="clearfix">
|
|
|
- <FormItem {...formItemLayout} label="付款科目">
|
|
|
- <Select
|
|
|
- value={this.state.paySubjectName}
|
|
|
- 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>
|
|
|
- <span className="mandatory">*</span>
|
|
|
- </FormItem>
|
|
|
- </div>
|
|
|
- <div className="clearfix">
|
|
|
- {parseInt(this.state.paySubjectName) === 0 ? <FormItem {...formItemLayout} label="付款时间">
|
|
|
- <DatePicker
|
|
|
- value={
|
|
|
- this.state.partyTimes
|
|
|
- ? moment(this.state.partyTimes)
|
|
|
- : null
|
|
|
- }
|
|
|
- onChange={(data, dataString) => {
|
|
|
- this.setState({ partyTimes: dataString })
|
|
|
- }}
|
|
|
- style={{ width: '220px' }}
|
|
|
- />
|
|
|
- <span className="mandatory">*</span>
|
|
|
- </FormItem> : <div/>}
|
|
|
- </div>
|
|
|
- <div className="clearfix">
|
|
|
- <FormItem {...formItemLayout} label="数量">
|
|
|
- <Input
|
|
|
- value={this.state.payNodeQuantity}
|
|
|
- placeholder="请输入数量(必填项)"
|
|
|
- required="required"
|
|
|
- type={'number'}
|
|
|
- onChange={(e) => {
|
|
|
- //TODO 数量为1时不可修改,需要将次块分成组件
|
|
|
- let num = e.target.value ? (e.target.value < 1 ? 1 : e.target.value) : 1
|
|
|
- this.setState(
|
|
|
- {
|
|
|
- payNodeQuantity: num,
|
|
|
- }, () => this.payNodeCalculatedAmount(num))
|
|
|
- }}
|
|
|
- style={{ width: '220px' }}
|
|
|
- />
|
|
|
- <span className="mandatory">*</span>
|
|
|
- </FormItem>
|
|
|
- </div>
|
|
|
- {this.state.projectType !== 2 ? <div className="clearfix">
|
|
|
- <FormItem {...formItemLayout} label="总价(万元)">
|
|
|
- <Input
|
|
|
- type={'number'}
|
|
|
- value={this.state.currentTotalPrice}
|
|
|
- placeholder="请输入总价"
|
|
|
- // required="required"
|
|
|
- // onBlur={this.payNodeCalculatedAmount}
|
|
|
- onChange={(e) =>
|
|
|
- this.setState({
|
|
|
- currentTotalPrice: e.target.value,
|
|
|
- })
|
|
|
- }
|
|
|
- style={{ width: '220px' }}
|
|
|
- />
|
|
|
- <span className="mandatory">*</span>
|
|
|
- </FormItem>
|
|
|
- </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> : <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}*/}
|
|
|
- {/*/>*/}
|
|
|
+ {this.state.PayNodeVisible ? <OperationPayNode
|
|
|
+ tid={this.state.tid}
|
|
|
+ cSort={this.state.cSort}
|
|
|
+ visible={this.state.PayNodeVisible}
|
|
|
+ thirdId={this.state.ThirdId}
|
|
|
+ thirdInfoList={this.state.thirdInfoList}
|
|
|
+ supplierList={this.state.PayNodeCompany}
|
|
|
+ payNodeInfor={this.state.payNodeInfor}
|
|
|
+ thirdUnitPrice={this.state.thirdUnitPrice}
|
|
|
+ onCancel={()=>{
|
|
|
+ this.setState({
|
|
|
+ PayNodeVisible: false,
|
|
|
+ payNodeInfor: {},
|
|
|
+ ThirdId: '',
|
|
|
+ thirdUnitPrice: '',
|
|
|
+ })
|
|
|
+ this.payNodeTable(this.state.tid)
|
|
|
+ }}
|
|
|
+ /> : <div/>}
|
|
|
</div>
|
|
|
)
|
|
|
},
|