import React,{Component} from 'react'; import ajax from 'jquery/src/ajax/xhr.js'; import $ from 'jquery/src/ajax'; import moment from 'moment'; import './public.less'; import { Form,Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Checkbox ,Modal, Upload ,Popconfirm,Cascader,Tabs} from 'antd'; import {getProcessStatus,getProjectStatus,getApproval,getProvinceA,beforeUploadFile,getInvoiceStatus,getprovince,splitUrl} from '@/tools'; import {projectProgress,specially,province,invoiceStatus} from '../../../dataDic.js'; const FormItem = Form.Item; const PicturesWall = React.createClass({ getInitialState() { return { previewVisible: false, previewImage: '', fileList: this.props.pictureUrl, } }, getDefaultProps(){ return{ changeClick:this.modifyChange } }, handleCancel() { this.setState({ previewVisible: false }) }, handlePreview(file) { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }, handleChange(info) { let fileList = info.fileList; this.setState({ fileList }); this.props.fileList(fileList); }, componentWillReceiveProps(nextProps) { this.state.fileList = nextProps.pictureUrl; }, render() { const { previewVisible, previewImage, fileList } = this.state; const uploadButton = (
点击上传
); return (
{fileList.length >= 18 ? null : uploadButton} example
); } }); const outSpecial = React.createClass({ departmentList() { this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/organization/selectSuperId", data: {}, success: function(data) { let thedata = data.data; let theArr=[]; if(!thedata) { if(data.error && data.error.length) { message.warning(data.error[0].message); }; }else{ thedata.map(function(item,index){ theArr.push({ key:index, name:item.name, id:item.id, }) }) } this.setState({ departmentArr:theArr, }) }.bind(this), }).always(function() { this.setState({ loading: false }); }.bind(this)); }, loadData(pageNo) { this.state.data = []; this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderInvoice/approvalOrderInvoiceList", data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, name: this.state.nameSearch,//客户名称 orderNo:this.state.orderNoSearch, orderDep:this.state.departmenttList, type:1 }, success: function (data) { let theArr = []; if (!data.data || !data.data.list) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; theArr.push({ key: i, id: thisdata.id, status:thisdata.status, unitName:thisdata.unitName, orderno:thisdata.orderno, name:thisdata.name, projectStatus:thisdata.projectStatus, amount:thisdata.amount, sumAmount:thisdata.sumAmount, createTime:thisdata.createTime?new Date(thisdata.createTime).toLocaleString():'', settlementAmount:thisdata.settlementAmount, notAmount:thisdata.notAmount, }); }; } this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; if(data.data&&data.data.list&&!data.data.list.length){ this.state.pagination.current=0 this.state.pagination.total=0 } this.setState({ totalPage:data.data.totalPage, dataSource: theArr, pagination: this.state.pagination }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, invoiceData() { this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/orderInvoice/selectByIdOrderInvoice', data:{ id:this.state.id }, success:function (data) { let thisdata = data.data; this.setState({ orderNo:thisdata.orderNo, type:thisdata.type, status:thisdata.status, remarks:thisdata.remarks, invoiceType:thisdata.invoiceType, unitName:thisdata.unitName, taxNumber:thisdata.taxNumber, amount:thisdata.amount, banks:thisdata.banks, content:thisdata.content, unitAddress:thisdata.unitAddress, invoiceRemarks:thisdata.invoiceRemarks, unitMobile:thisdata.unitMobile, post:thisdata.post, addressee:thisdata.addressee, addresseeMobile:thisdata.addresseeMobile, addresseeProvince:thisdata.addresseeProvince, addresseeCity:thisdata.addresseeCity, addresseeArea:thisdata.addresseeArea, alreadyAmount:thisdata.alreadyAmount, recipientAddress:thisdata.recipientAddress, orgCodeUrl: thisdata.voucherUrl ? splitUrl(thisdata.voucherUrl, ',', globalConfig.avatarHost + '/upload') : [], }) }.bind(this) }).done(function(data) { this.setState({ loading: false }); }.bind(this)); }, getInitialState() { return { searchMore: true, assignVisible:false, releaseDate: [], totalPage:0, boHuivisible:false, selectedRowKeys: [], selectedRows: [], loading: false, reason: '', foo:0, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return '共' + total + '条数据'; } }, columns: [ { title: '编号', dataIndex: 'id', key: 'id', fixed: 'left' }, { title: '客户', dataIndex: 'unitName', key: 'unitName', }, { title: '跟单人/签单人', dataIndex: 'name', key: 'name', }, { title: '项目状态', dataIndex: 'projectStatus', key: 'projectStatus', render:(text)=>{ return getProjectStatus(text) } }, { title: '申请开票(万)', dataIndex: 'amount', key: 'amount' }, { title: '已开票(万)', dataIndex: 'sumAmount', key: 'sumAmount' }, { title: '已收款', dataIndex: 'settlementAmount', key: 'settlementAmount' }, { title: '未收款', dataIndex: 'notAmount', key: 'notAmount' }, { title: '申请时间', dataIndex: 'createTime', key: 'createTime', }, { title:'操作', dataIndex: 'caozuo', key: 'caouzo', render:(text,record,index)=>{ return
{} {record.status !== 2? :''} {record.status !== 2? :''} {record.status === 2? :''} {}
} } ], columnsDate:[ { title: '编号', dataIndex: 'id', key: 'id' },{ title: '订单编号', dataIndex: 'orderno', key: 'orderno' },{ title: '开票金额(万元)', dataIndex: 'amount', key: 'amount' },{ title: '申请时间', dataIndex: 'createTime', key: 'createTime' },{ title: '开票状态', dataIndex: 'status', key: 'status', render:(text)=>{ return getInvoiceStatus(text) } } ], dataSource: [], searchTime: [,] } }, loadSend(record){ this.setState({ loading: true }); if (this.state.examine === 3 && this.state.reason === '') { message.warning('拒绝理由不能为空!') return } $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/orderInvoice/approvalExamine', data: { id:this.state.examine===2?record.id:this.state.id, examine:this.state.examine, reason:this.state.reason }, success: function (data) { }.bind(this), }).done(function(data) { this.setState({ loading: false }); if(this.state.examine === 2){ message.success('通过成功!'); this.loadData() }else{ message.success('拒绝成功!') this.resetReason() this.rejectCancels() this.loadData() } }.bind(this)); }, //重置拒绝理由 resetReason(){ this.setState({ reason:'' }) }, sende(record){ this.loadSend(record) }, commit(){ this.loadSend() this.setState({ avisible:false }) }, visit(record,index){ this.setState({ id:this.state.dataSource[index].id, avisible:true, },()=>{ this.invoiceData() }) }, visitCancels(){ this.setState({ avisible:false }) }, reject(record){ this.setState({ visibleR:true, id:record.id }); }, rejectCancels(){ this.setState({ visibleR:false }) }, inRecordData(){ this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/orderInvoice/salesmanOrderInvoiceList', data: { orderNo:this.state.orderNo2 }, success: function (data) { let theArr = []; let sum = 0; if (!data.data) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; sum += parseFloat(thisdata.amount); theArr.push({ id: thisdata.id, orderno: thisdata.orderno,//订单编号 amount:thisdata.amount,//签单金额 createTime:thisdata.createTime,//流程状态 status:thisdata.status,//结算状态 rejectReason:thisdata.rejectReason }); }; }; this.setState({ recordData:theArr, sum:sum.toFixed(4) }) }.bind(this), }).done(function(data) { this.setState({ loading: false }); }.bind(this)); }, inRecord(record,index){ this.setState({ bvisible:true, orderNo2:record.orderno, },() => {this.inRecordData()}) }, inRecordCanl(){ this.setState({ bvisible:false }) }, search(){ this.loadData(); }, componentWillMount() { this.departmentList(); this.loadData(); }, reset() { this.state.nameSearch = ''; this.state.releaseDate = []; this.state.orderNoSearch=''; this.state.processStatus = []; this.state.departmenttList = []; this.loadData(); }, render() { const rowSelection = { selectedRowKeys: this.state.selectedRowKeys, onChange: (selectedRowKeys, selectedRows) => { this.setState({ selectedRows: selectedRows.slice(-1), selectedRowKeys: selectedRowKeys.slice(-1) }); } }; const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const hasSelected = this.state.selectedRowKeys.length > 0; const { RangePicker } = DatePicker; var departmentArr = this.state.departmentArr ||[]; return (
省外特批
{ this.setState({ nameSearch: e.target.value }); }} /> { this.setState({ orderNoSearch: e.target.value }); }} /> {/**/}
{this.setState({ reason:e.target.value })}}>
{this.state.contractNo} {this.state.remarks}
*省内/外 } > {getProvinceA(this.state.type)}

发票内容
*发票类型 } > {this.state.invoiceType===0?'增值税专用发票':(this.state.invoiceType === 1?'增值税普通发票':'其他')}
*单位名称 } > {this.state.unitName} *税号 } > {this.state.taxNumber} *开票金额(万元) } > {this.state.amount} *开户行银行账号 } > {this.state.banks} *开票内容及说明 } > {this.state.content} *单位地址 } > {this.state.unitAddress} {this.state.invoiceRemarks} *单位电话 } > {this.state.unitMobile}
*附件 } > { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} > { this.setState({ previewVisible: false }) }}>

{this.state.post===0?'是':"否"}
{this.state.post === 0?
{this.state.addressee} {this.state.addresseeMobile}
{getprovince(this.state.addresseeProvince)}/{getprovince(this.state.addresseeCity)}/{getprovince(this.state.addresseeArea)}
{this.state.recipientAddress}
:''} *开票金额总计 } > {this.state.alreadyAmount}万元
开票总计 } > {this.state.sum}
) } }) export default outSpecial;