import React,{Component} from 'react'; import {AutoComplete, Button, Form, Input, message, Modal, Radio, Select, Spin} from "antd"; import { getMaterialStatus, getUrgentStatus, } from '@/tools' import $ from "jquery"; const { Option } = Select const { TextArea } = Input const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, } class NewSupplier extends Component{ constructor(props) { super(props); this.state={ thirdCompanyName: props.thirdCompanyName && props.thirdCompanyName.split('-')[0], thirdUnitPrice: props.thirdUnitPrice, thirdQuantity: props.thirdQuantity, thirdRemarks: props.thirdRemarks, thirdMaterial: props.thirdMaterial, thirdUrgent: props.thirdUrgent, patentType: props.patentType, customerArr: [], loading: false, officialCost: "", //是否有官费 costReduction: "", //是否有费减 } } componentDidMount() { if(this.props.ThirdId){ this.supervisor(this.state.thirdCompanyName) } } //服务值改变时请求供应商名称 httpChange(e) { if (e.length >= 1) { this.supervisor(e) } this.props.otherOperations && this.props.otherOperations({ thirdMaterial: this.state.thirdMaterial, thirdUrgent: this.state.thirdUrgent, customerArr: this.state.customerArr, thirdCompanyName: e, }); this.setState({ thirdCompanyName: e, }) } //加载(自动补全) supervisor(e) { $.ajax({ method: 'get', dataType: 'json', crossDomain: false, url: globalConfig.context + '/api/admin/company/selectVague', data: { name: e, type: this.props.projectType === 2 ? 0 : 1 }, success: function (data) { let thedata = data.data if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message) } thedata = {} } this.setState({ customerArr: thedata, }) this.props.otherOperations && this.props.otherOperations({ thirdMaterial: this.state.thirdMaterial, thirdUrgent: this.state.thirdUrgent, customerArr: thedata, thirdCompanyName: this.state.thirdCompanyName, }); }.bind(this), }).always( function () { this.setState({ loading: false, }) }.bind(this) ) } // 第三方信息自动计算总金额 calculatedAmount() { let currentTotalPrice currentTotalPrice = this.state.thirdUnitPrice * this.state.thirdQuantity currentTotalPrice = currentTotalPrice.toFixed(4) this.setState({ currentTotalPrice: currentTotalPrice, }) } // 保存供应商信息 handleCancelq() { let api if (this.props.ThirdId) { //修改 api = '/api/admin/company/updateCompany' } else { //新增 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; } }); //软著 必须要使用查询出来第三方名称和对应id if(!isHave && this.props.projectType === 2){ //projectType 0正常 1专利 2软著 message.warning('请输入正确的供应商名称') return; } // if (this.props.projectType === 1 && this.props.patentType === 0) { // if(this.state.officialCost === ''){ // message.warning("请选择官费!"); // return false; // } // if (this.state.costReduction === "") { // message.warning("请选择费减!"); // return false; // } // } this.setState({ loading: true, }) // material: this.state.thirdMaterial, //材料 // urgent: this.state.thirdUrgent, //加急 // unitPrice: this.state.thirdUnitPrice, //单价 let data = { id: this.props.ThirdId, //id tid: this.props.tid, //订单编号 companyName: this.state.thirdCompanyName, //第三方名称 quantity: this.state.thirdQuantity, //数量 remarks: this.state.thirdRemarks, //备注 unitPrice: this.state.thirdUnitPrice, //单价 } if(isHave){ data.cid = customerId //公司id 只有软著类要传cid,其他类型都是非必填的 } if(this.props.projectType === 2){ data.material = this.state.thirdMaterial //材料 data.urgent = this.state.thirdUrgent //加急 data.calculation = 1; //0 其他 1软著 }else{ //非软著类需要传总金额 data.totalAmount = this.state.thirdQuantity * this.state.thirdUnitPrice; } // if(this.props.projectType === 1 && this.props.patentType === 0){ // data.officialCost = this.state.officialCost; //是否有官费 // data.costReduction = this.state.costReduction; //是否有费减 // } data.type = this.props.patentType === 0 ? 1 : (this.props.patentType ? 2 : 0) //0其他 1专利申请 2专利买卖 if(this.state.projectType === 3){ if(!this.state.assets){ message.warning("请选择审计!"); return false; } if(!this.state.assets){ message.warning("请输入公司资产!"); return false; } if(!this.state.assets){ message.warning("请输入收入!"); return false; } } if(this.state.projectType === 3){ //审计 data.assets = this.state.assets; //资产 data.audit = this.state.audit; //0无审计 1年审 2专审 data.income = this.state.income; //收入 } $.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.setState({ thirdCompanyName: '', //第三方名称 thirdUnitPrice: '', //单价 thirdQuantity: '', //数量 currentTotalPrice: '', //总价 thirdRemarks: '', thirdUrgent: 0, }) this.props.onCancel(); } else { message.warning(data.error[0].message) } }.bind(this) ) } render() { return(
( {group.companyName} ))} placeholder="请输入供应商名称" value={this.state.thirdCompanyName} onChange={(e)=>{ this.httpChange(e) }} filterOption={true} required="required" /> *
{this.props.projectType !== 2 ?
{ this.setState({ thirdUnitPrice: e.target.value, }) }} style={{ width: '220px' }} /> *
:
}
{ this.setState({ thirdQuantity: e.target.value, }) }} style={{ width: '220px' }} /> *
{this.props.projectType !== 2 ?
{this.state.thirdQuantity * this.state.thirdUnitPrice}
:
} {this.props.projectType === 2 ?
*
*
:
} {/*{*/} {/* this.props.patentType === 0 ?
*/} {/*
*/} {/* */} {/* */} {/* **/} {/* */} {/* {*/} {/* this.setState({ officialCost: e.target.value });*/} {/* }}*/} {/* >*/} {/* 含官费*/} {/* 不含官费*/} {/* */} {/* */} {/*
*/} {/*
*/} {/* */} {/* */} {/* **/} {/* */} {/* {*/} {/* this.setState({ costReduction: e.target.value });*/} {/* }}*/} {/* >*/} {/* 有费减*/} {/* 无费减*/} {/* */} {/* */} {/*
*/} {/*
:
*/} {/*}*/} { this.state.projectType === 3 ?
*
{ this.setState({ assets: e.target.value, }) }} style={{ width: '220px' }} /> *
{ this.setState({ income: e.target.value, }) }} style={{ width: '220px' }} /> *
:
}