|
@@ -0,0 +1,868 @@
|
|
|
+import React from 'react';
|
|
|
+import { Radio, Icon, Button, AutoComplete,Cascader,Input, Select, Spin, Popconfirm, Table, Switch, message,Calendar , DatePicker, Upload, Form ,Modal,Tabs,Card ,Col} from 'antd';
|
|
|
+import ajax from 'jquery/src/ajax/xhr.js';
|
|
|
+import $ from 'jquery/src/ajax';
|
|
|
+import Jquery from 'jquery/dist/jquery.js';
|
|
|
+import moment from 'moment';
|
|
|
+import {boutique } from '@/dataDic.js';
|
|
|
+import { getLiquidationStatus,getApprovedState,getProcessStatus,splitUrl,getjiedian,getboutique} from '@/tools.js';
|
|
|
+import './customer.less';
|
|
|
+const TabPane = Tabs.TabPane;
|
|
|
+const Dragger = Upload.Dragger;
|
|
|
+//图片组件
|
|
|
+const PicturesWall = React.createClass({
|
|
|
+ getInitialState() {
|
|
|
+ return {
|
|
|
+ previewVisible: false,
|
|
|
+ previewImage: '',
|
|
|
+ fileList: [],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ 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;
|
|
|
+ this.state.pojectApplicationUrl = undefined;
|
|
|
+ },
|
|
|
+ render() {
|
|
|
+ const {
|
|
|
+ previewVisible,
|
|
|
+ previewImage,
|
|
|
+ fileList
|
|
|
+ } = this.state;
|
|
|
+ const uploadButton = (
|
|
|
+ <div>
|
|
|
+ <Icon type="plus" />
|
|
|
+ <div className="ant-upload-text">点击上传</div>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ return(
|
|
|
+ <div style={{display:"inline-block"}}>
|
|
|
+ <Upload
|
|
|
+ action={globalConfig.context + "/api/admin/customer/uploadCustomerImg"}
|
|
|
+ data={{ 'sign': '' }}
|
|
|
+ listType="picture-card"
|
|
|
+ fileList={fileList}
|
|
|
+ onPreview={this.handlePreview}
|
|
|
+ onChange={this.handleChange} >
|
|
|
+ {fileList.length >= 1 ? null : uploadButton}
|
|
|
+ </Upload>
|
|
|
+ <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
|
|
|
+ <img alt="example" style={{ width: '100%' }} src={previewImage} />
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+
|
|
|
+const IntentionCustomer = Form.create()(React.createClass({
|
|
|
+ loadData(pageNo, apiUrl) {
|
|
|
+ this.setState({
|
|
|
+ visitModul:false,
|
|
|
+ loading: true,
|
|
|
+ ispage:pageNo,
|
|
|
+ modalVisible:false
|
|
|
+ });
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context +"/api/admin/newOrder/orderNewList",
|
|
|
+ data: {
|
|
|
+ pageNo: pageNo || 1,
|
|
|
+ pageSize: this.state.pagination.pageSize,
|
|
|
+ specially: 3,//审核列表
|
|
|
+ name: this.state.customerName,//名称
|
|
|
+ orderNo: this.state.orderNo,//订单编号
|
|
|
+ starTime: this.state.releaseDate[0],//开始时间
|
|
|
+ endTime: this.state.releaseDate[1],//结束时间
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ if(data.error.length || 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];
|
|
|
+ let diqu=(thisdata.province==null?"":thisdata.province)+(thisdata.city==null?"":"-"+thisdata.city)+(thisdata.area==null?"":"-"+thisdata.area);
|
|
|
+ theArr.push({
|
|
|
+ key: i,
|
|
|
+ id: thisdata.id,//用户ID
|
|
|
+ orderNo: thisdata.orderNo,//订单编号
|
|
|
+ totalAmount:thisdata.totalAmount,//签单金额
|
|
|
+ processStatus:thisdata.processStatus,//流程状态
|
|
|
+ liquidationStatus:thisdata.liquidationStatus,//结算状态
|
|
|
+ approval:thisdata.approval,//特批状态
|
|
|
+ signDate:thisdata.signDate,//签单时间
|
|
|
+ userName:thisdata.userName,//客户名称
|
|
|
+ salesmanName:thisdata.salesmanName,//营销员名称
|
|
|
+ financeName:thisdata.financeName,//财务名称
|
|
|
+ createDate:thisdata.createDate,//下单时间
|
|
|
+ });
|
|
|
+ };
|
|
|
+ this.state.pagination.total = data.data.totalCount;
|
|
|
+ };
|
|
|
+ if(data.data&&data.data.list&&!data.data.list.length){
|
|
|
+ this.state.pagination.total=0
|
|
|
+ }
|
|
|
+ this.setState({
|
|
|
+ dataSource: theArr,
|
|
|
+ pageNo: pageNo,
|
|
|
+ pagination: this.state.pagination,
|
|
|
+ selectedRowKeys:[]
|
|
|
+ });
|
|
|
+ }.bind(this),
|
|
|
+ }).always(function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ getInitialState() {
|
|
|
+ return {
|
|
|
+ page:1,
|
|
|
+ releaseDate: [],
|
|
|
+ selectedRowKeys: [],
|
|
|
+ orgCodeUrl:[],
|
|
|
+ paginations:false,
|
|
|
+ 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: 'orderNo',
|
|
|
+ key: 'orderNo'
|
|
|
+ }, {
|
|
|
+ title: '下单时间',
|
|
|
+ dataIndex: 'createDate',
|
|
|
+ key: 'createTime'
|
|
|
+ },{
|
|
|
+ title: '合同签订时间',
|
|
|
+ dataIndex: 'signDate',
|
|
|
+ key: 'signDate'
|
|
|
+ },{
|
|
|
+ title: '客户名称',
|
|
|
+ dataIndex: 'userName',
|
|
|
+ key: 'userName',
|
|
|
+ render:(text)=>{
|
|
|
+ return (text&&text.length>9?text.substr(0,9)+'...':text)
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ title: '流程状态',
|
|
|
+ dataIndex: 'processStatus',
|
|
|
+ key: 'processStatus',
|
|
|
+ render:text=>{return getProcessStatus(text)}
|
|
|
+ }, {
|
|
|
+ title: '签单金额(万元)',
|
|
|
+ dataIndex: 'totalAmount',
|
|
|
+ key: 'totalAmount'
|
|
|
+ },{
|
|
|
+ title: '结算状态',
|
|
|
+ dataIndex: 'liquidationStatus',
|
|
|
+ key: 'liquidationStatus',
|
|
|
+ render:text=>{return getLiquidationStatus(text)}
|
|
|
+ }, {
|
|
|
+ title: '是否特批',
|
|
|
+ dataIndex: 'approval',
|
|
|
+ key: 'approval',
|
|
|
+ render:text=>{return getApprovedState(text)}
|
|
|
+ },{
|
|
|
+ title: '订单负责人',
|
|
|
+ dataIndex: 'salesmanName',
|
|
|
+ key: 'salesmanName'
|
|
|
+ },{
|
|
|
+ title: '财务负责人',
|
|
|
+ dataIndex: 'financeName',
|
|
|
+ key: 'financeName'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ data: [],
|
|
|
+ dataSource: [],
|
|
|
+ columnsX: [
|
|
|
+ {
|
|
|
+ title: '业务项目名称',
|
|
|
+ dataIndex: 'commodityName',
|
|
|
+ key: 'commodityName'
|
|
|
+ }, {
|
|
|
+ title: '项目类别',
|
|
|
+ dataIndex: 'cname',
|
|
|
+ key: 'cname',
|
|
|
+
|
|
|
+ },{
|
|
|
+ title: '项目数量',
|
|
|
+ dataIndex: 'commodityQuantity',
|
|
|
+ key: 'commodityQuantity'
|
|
|
+ }, {
|
|
|
+ title: '金额(万元)',
|
|
|
+ dataIndex: 'commodityPrice',
|
|
|
+ key: 'commodityPrice'
|
|
|
+ }, {
|
|
|
+ title: '负责人',
|
|
|
+ dataIndex: 'contacts',
|
|
|
+ key: 'contacts'
|
|
|
+ }, {
|
|
|
+ title: '负责人电话',
|
|
|
+ dataIndex: 'contactsMobile',
|
|
|
+ key: 'contactsMobile'
|
|
|
+ }, {
|
|
|
+ title: '主要项目',
|
|
|
+ dataIndex: 'main',
|
|
|
+ key: 'main',
|
|
|
+ render:(text)=>{
|
|
|
+ return (text?'是':'否')
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ title: '项目说明',
|
|
|
+ dataIndex: 'taskComment',
|
|
|
+ key: 'taskComment',
|
|
|
+ render:(text)=>{
|
|
|
+ return (text&&text.length>8?text.substr(0,8)+'…':text)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ dataSourceX: [],
|
|
|
+ ContactsLists: [{
|
|
|
+ title: '催款科目',
|
|
|
+ dataIndex: 'dunSubject',
|
|
|
+ key: 'dunSubject',
|
|
|
+ render: text=>{return getjiedian(text)}
|
|
|
+ },{
|
|
|
+ title: '金额(万)',
|
|
|
+ dataIndex: 'money',
|
|
|
+ key: 'money',
|
|
|
+ }, {
|
|
|
+ title: '催款状态',
|
|
|
+ dataIndex: 'dunStatus',
|
|
|
+ key: 'dunStatus',
|
|
|
+ render: (text) => {
|
|
|
+ return text?'已完成':'催款中'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //页面加载函数
|
|
|
+ componentWillMount() {
|
|
|
+ this.loadData();
|
|
|
+ },
|
|
|
+ //整行点击
|
|
|
+ tableRowClick(record, index) {
|
|
|
+ this.setState({
|
|
|
+ visible:true,
|
|
|
+ });
|
|
|
+ this.xiangqing(record.orderNo);
|
|
|
+ this.xiangmu(record.orderNo);
|
|
|
+ this.jiedian(record.orderNo);
|
|
|
+ },
|
|
|
+ //点击打卡项目详情
|
|
|
+ tableRowClickX(record, index) {
|
|
|
+ console.log(record);
|
|
|
+ this.setState({
|
|
|
+ jid:record.id,//项目ID
|
|
|
+ kid:record.commodityId,//商品ID
|
|
|
+ commodityName:record.commodityName,//金额
|
|
|
+ commodityPrice:record.commodityPrice,//金额
|
|
|
+ commodityQuantity:record.commodityQuantity,//数量
|
|
|
+ taskComment:record.taskComment,//备注
|
|
|
+ main:record.main.toString(),//是否为主要
|
|
|
+ addnextVisible:true,
|
|
|
+ addState:0,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //项目详情关闭
|
|
|
+ nextCancel() {
|
|
|
+ this.setState({
|
|
|
+ addnextVisible: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //订单详情
|
|
|
+ xiangqing(orderNos) {
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context +"/api/admin/newOrder/getOrderNewDetail",
|
|
|
+ data: {
|
|
|
+ orderNo:orderNos
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+
|
|
|
+ if(data.error.length || data.data.list == "") {
|
|
|
+ if(data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ let thisdata=data.data;
|
|
|
+ this.setState({
|
|
|
+ orderNo: thisdata.orderNo,//订单编号
|
|
|
+ contractNo: thisdata.contractNo,//合同编号
|
|
|
+ userName:thisdata.userName,//客户名称
|
|
|
+ signDate:thisdata.signDate,//签单时间
|
|
|
+ processStatus:thisdata.processStatus,//流程状态
|
|
|
+ liquidationStatus:thisdata.liquidationStatus,//结算状态
|
|
|
+ contacts:thisdata.contacts,//企业联系人
|
|
|
+ contactMobile:thisdata.contactMobile,//联系人电话
|
|
|
+ legalPerson:thisdata.legalPerson,//法人
|
|
|
+ legalPersonTel:thisdata.legalPersonTel,//法人电话
|
|
|
+ firstAmount:thisdata.firstAmount,//签单金额
|
|
|
+ totalAmount:thisdata.totalAmount,//首付金额
|
|
|
+ approval:thisdata.approval,//特批状态
|
|
|
+ settlementAmount:thisdata.settlementAmount,//已收款项
|
|
|
+ orderRemarks:thisdata.orderRemarks,//订单留言
|
|
|
+ orgCodeUrl: thisdata.contractPictureUrl ? splitUrl(thisdata.contractPictureUrl, ',', globalConfig.avatarHost + '/upload') : [],//图片地址
|
|
|
+ salesmanName:thisdata.salesmanName,//营销员名称
|
|
|
+ salesmanMobile:thisdata.salesmanMobile,//营销员电话
|
|
|
+ financeName:thisdata.financeName,//财务名称
|
|
|
+ financeMobile:thisdata.financeMobile,//财务电话
|
|
|
+ })
|
|
|
+ };
|
|
|
+
|
|
|
+ }.bind(this),
|
|
|
+ }).always(function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ //项目列表
|
|
|
+ xiangmu(orderNos) {
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context +"/api/admin/newOrder/getOrderTask",
|
|
|
+ data: {
|
|
|
+ orderNo:orderNos
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+
|
|
|
+ if(data.error.length || data.data.list == "") {
|
|
|
+ if(data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ for (let i = 0; i < data.data.length; i++) {
|
|
|
+ let thisdata = data.data[i];
|
|
|
+ theArr.push({
|
|
|
+ key: i,
|
|
|
+ id:thisdata.id,
|
|
|
+ orderNo:thisdata.orderNo,//订单编号
|
|
|
+ commodityId:thisdata.commodityId,//项目ID
|
|
|
+ commodityName:thisdata.commodityName,//项目名称
|
|
|
+ cname:thisdata.cname,//项目类别
|
|
|
+ commodityPrice:thisdata.commodityPrice,//项目价格
|
|
|
+ commodityQuantity:thisdata.commodityQuantity,//项目数量
|
|
|
+ main:thisdata.main,//是否为主要任务
|
|
|
+ taskComment:thisdata.taskComment,//任务说明
|
|
|
+ contacts:thisdata.contacts,//联系人
|
|
|
+ contactsMobile:thisdata.contactsMobile,//联系人电话
|
|
|
+ });
|
|
|
+ };
|
|
|
+ };
|
|
|
+ this.setState({
|
|
|
+ dataSourceX: theArr,
|
|
|
+ });
|
|
|
+ }.bind(this),
|
|
|
+ }).always(function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ //节点列表
|
|
|
+ jiedian(orderNos) {
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context +"/api/admin/newOrder/selectOrderDun",
|
|
|
+ data: {
|
|
|
+ orderNo:orderNos
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ let thisData=[];
|
|
|
+ if(data.error.length || data.data.list == "") {
|
|
|
+ if(data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ for(let i = 0; i < data.data.length; i++) {
|
|
|
+ thisData= data.data[i];
|
|
|
+ theArr.push({
|
|
|
+ key:i,
|
|
|
+ dunSubject:thisData.dunSubject?thisData.dunSubject.toString():"",//催款科目
|
|
|
+ id:thisData.id,//节点Id
|
|
|
+ money:thisData.money,//催款金额
|
|
|
+ dunStatus:thisData.dunStatus,//催款状态
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setState({
|
|
|
+ contactList:theArr
|
|
|
+ })
|
|
|
+ };
|
|
|
+
|
|
|
+ }.bind(this),
|
|
|
+ }).always(function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ //审核通过
|
|
|
+ examOk(){
|
|
|
+ $.ajax({
|
|
|
+ method: "post",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context +"/api/admin/newOrder/approvalOrder",
|
|
|
+ data: {
|
|
|
+ orderNo:this.state.orderNo,
|
|
|
+ confirm:2,
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ if(data.error.length || data.data.list == "") {
|
|
|
+ if(data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ message.success("该特批订单已通过审核~");
|
|
|
+ this.setState({
|
|
|
+ visible:false,
|
|
|
+ });
|
|
|
+ this.loadData();
|
|
|
+ this.resets();
|
|
|
+ };
|
|
|
+
|
|
|
+ }.bind(this),
|
|
|
+ }).always(function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ //审核不通过
|
|
|
+ examOks(){
|
|
|
+ $.ajax({
|
|
|
+ method: "post",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context +"/api/admin/newOrder/approvalOrder",
|
|
|
+ data: {
|
|
|
+ orderNo:this.state.orderNo,
|
|
|
+ confirm:3,
|
|
|
+ reason:this.state.reason,
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ if(data.error.length || data.data.list == "") {
|
|
|
+ if(data.error && data.error.length) {
|
|
|
+ message.warning(data.error[0].message);
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ message.success("该特批订单已被驳回~");
|
|
|
+ this.setState({
|
|
|
+ visible:false,
|
|
|
+ noVisible:false
|
|
|
+ });
|
|
|
+ this.loadData();
|
|
|
+ this.resets();
|
|
|
+ };
|
|
|
+
|
|
|
+ }.bind(this),
|
|
|
+ }).always(function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ //点击拒绝
|
|
|
+ examNo(){
|
|
|
+ this.setState({
|
|
|
+ noVisible:true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //关闭输入理由框
|
|
|
+ noCancel(){
|
|
|
+ this.setState({
|
|
|
+ noVisible:false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //搜索
|
|
|
+ search() {
|
|
|
+ this.setState({
|
|
|
+ //signBillVisible:false
|
|
|
+ })
|
|
|
+ this.loadData();
|
|
|
+ },
|
|
|
+ //重置
|
|
|
+ reset() {
|
|
|
+ this.setState({
|
|
|
+ signBillVisible:false
|
|
|
+ })
|
|
|
+ this.state.orderNo='';
|
|
|
+ this.state.customerName='';
|
|
|
+ this.state.releaseDate[0] = undefined;
|
|
|
+ this.state.releaseDate[1] = undefined;
|
|
|
+ this.state.projectProgress = undefined;
|
|
|
+ this.state.settlementState = undefined;
|
|
|
+ this.state.orderStatusSearch = undefined;
|
|
|
+ this.state.orderChannelSearch = undefined;
|
|
|
+ this.state.approval= undefined;
|
|
|
+ this.state.formalOrder=true;
|
|
|
+ this.state.intentOrder=true;
|
|
|
+ this.loadData();
|
|
|
+ },
|
|
|
+ resets(){
|
|
|
+ this.state.orderNo='';
|
|
|
+ this.state.customerName='';
|
|
|
+ this.state.releaseDate[0] = undefined;
|
|
|
+ this.state.releaseDate[1] = undefined;
|
|
|
+ },
|
|
|
+ getOrgCodeUrl(e) {
|
|
|
+ this.setState({ orgCodeUrl: e });
|
|
|
+ },
|
|
|
+ //关闭详情
|
|
|
+ visitCancel(e){
|
|
|
+ this.setState({
|
|
|
+ visible:false
|
|
|
+ })
|
|
|
+ this.resets();
|
|
|
+ },
|
|
|
+ visitOk(e){
|
|
|
+ this.setState({
|
|
|
+ visible:false
|
|
|
+ })
|
|
|
+ this.resets();
|
|
|
+ },
|
|
|
+ render() {
|
|
|
+ const formItemLayout = {
|
|
|
+ labelCol: { span: 8 },
|
|
|
+ wrapperCol: { span: 14 },
|
|
|
+ };
|
|
|
+ const FormItem = Form.Item;
|
|
|
+ const { RangePicker } = DatePicker;
|
|
|
+ const rowSelection = {
|
|
|
+ selectedRowKeys: this.state.selectedRowKeys,
|
|
|
+ onChange: (selectedRowKeys, selectedRows) => {
|
|
|
+ this.setState({
|
|
|
+ modalVisible:false,
|
|
|
+ selectedRows: selectedRows.slice(-1),
|
|
|
+ selectedRowKeys: selectedRowKeys.slice(-1)
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onSelect: (recordt, selected, selectedRows) => {
|
|
|
+ this.setState({
|
|
|
+ modalVisible:false,
|
|
|
+ recordt: recordt.id
|
|
|
+ })
|
|
|
+ },
|
|
|
+ };
|
|
|
+ const hasSelected = this.state.selectedRowKeys.length > 0;
|
|
|
+ return(
|
|
|
+ <div className="user-content">
|
|
|
+ <div className="content-title">
|
|
|
+ <span>特批订单审核</span>
|
|
|
+ </div>
|
|
|
+ <div className="user-search">
|
|
|
+ <Input placeholder="客户名称" style={{width:'150px',marginBottom:'10px'}}
|
|
|
+ value={this.state.customerName}
|
|
|
+ onChange={(e) => { this.setState({ customerName: e.target.value }); }} />
|
|
|
+ <Input placeholder="订单编号" style={{width:'150px'}}
|
|
|
+ value={this.state.orderNo}
|
|
|
+ onChange={(e) => { this.setState({ orderNo: e.target.value }); }} />
|
|
|
+ <span style={{marginRight:"10px"}}>合同签订时间 :</span>
|
|
|
+ <RangePicker
|
|
|
+ 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 }); }} />
|
|
|
+ <Button type="primary" onClick={this.search} style={{marginLeft:'10px'}}>搜索</Button>
|
|
|
+ <Button onClick={this.reset}>重置</Button>
|
|
|
+ <div className="patent-table">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <Table columns={this.state.columns}
|
|
|
+ dataSource={this.state.dataSource}
|
|
|
+ rowSelection={rowSelection}
|
|
|
+ pagination={this.state.pagination}
|
|
|
+ onRowClick={this.tableRowClick}
|
|
|
+ />
|
|
|
+ </Spin>
|
|
|
+ </div>
|
|
|
+ <Modal
|
|
|
+ className="customeDetails"
|
|
|
+ footer=''
|
|
|
+ title="订单详情"
|
|
|
+ width='900px'
|
|
|
+ visible={this.state.visible}
|
|
|
+ onOk={this.visitOk}
|
|
|
+ onCancel={this.visitCancel}
|
|
|
+ >
|
|
|
+ <Form layout="horizontal" onSubmit={this.handleSubmit} id="demand-form" style={{paddingBottom:'40px'}} >
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <div className="clearfix">
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="订单编号" >
|
|
|
+ <span>{this.state.orderNo}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="合同编号" >
|
|
|
+ <span>{this.state.contractNo}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="客户名称" >
|
|
|
+ <span>{this.state.userName}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="合同签订时间" >
|
|
|
+ <span>{this.state.signDate}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="流程状态" >
|
|
|
+ <span>{getProcessStatus(this.state.processStatus)}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="结算状态" >
|
|
|
+ <span>{getLiquidationStatus(this.state.liquidationStatus)}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="企业联系人" >
|
|
|
+ <span>{this.state.contacts}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="联系人电话" >
|
|
|
+ <span>{this.state.contactMobile}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="企业法人" >
|
|
|
+ <span>{this.state.legalPerson}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="法人电话" >
|
|
|
+ <span>{this.state.legalPersonTel}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="签单金额(万元)" >
|
|
|
+ <span>{this.state.firstAmount}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="首付金额(万元)" >
|
|
|
+ <span>{this.state.totalAmount}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="特批立项" >
|
|
|
+ <span>{getApprovedState(this.state.approval)}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="已收款项(万元)" >
|
|
|
+ <span>{this.state.settlementAmount}</span>
|
|
|
+ </FormItem>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <FormItem
|
|
|
+ labelCol={{ span: 4 }}
|
|
|
+ wrapperCol={{ span: 16 }}
|
|
|
+ label="订单留言" >
|
|
|
+ <span>{this.state.orderRemarks}</span>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <FormItem
|
|
|
+ labelCol={{ span: 4 }}
|
|
|
+ wrapperCol={{ span: 18 }}
|
|
|
+ label={
|
|
|
+ <span>
|
|
|
+ <strong style={{ color: '#f00' }}>*</strong>合同扫描件
|
|
|
+ </span>
|
|
|
+ }
|
|
|
+ >
|
|
|
+
|
|
|
+ <PicturesWall
|
|
|
+ fileList={this.getOrgCodeUrl}
|
|
|
+ pictureUrl={this.state.orgCodeUrl} />
|
|
|
+ <p>图片建议:要清晰。</p>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="订单负责人" >
|
|
|
+ <span>{this.state.salesmanName}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="订单负责人电话" >
|
|
|
+ <span>{this.state.salesmanMobile}</span>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="财务负责人" >
|
|
|
+ <span>{this.state.financeName}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="财务负责人电话" >
|
|
|
+ <span>{this.state.financeMobile}</span>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span style={{marginLeft:'50px',fontSize:'20px'}}>催款节点</span>
|
|
|
+ {this.state.processStatus==0?<Button type='primary' onClick={this.addcontact} style={{float:'right',marginRight:'50px',marginBottom:'15px'}}>添加催款节点</Button>:""}
|
|
|
+ </div>
|
|
|
+ <div className="clearfix">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <Form layout="horizontal" id="demand-form" >
|
|
|
+ <Table
|
|
|
+ pagination={false}
|
|
|
+ columns={this.state.ContactsLists}
|
|
|
+ dataSource={this.state.contactList}
|
|
|
+ />
|
|
|
+ <Col span={24} offset={9} style={{marginTop:'15px'}}>
|
|
|
+
|
|
|
+ </Col>
|
|
|
+ </Form>
|
|
|
+ </Spin>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span style={{marginLeft:'50px',fontSize:'20px'}}>项目业务</span>
|
|
|
+ {this.state.processStatus==0?<Button type='primary' onClick={this.addDetailed} style={{float:'right',marginRight:'50px',marginBottom:'15px'}}>添加项目明细</Button>:""}
|
|
|
+ </div>
|
|
|
+ <div className="patent-table">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <Table columns={this.state.columnsX}
|
|
|
+ dataSource={this.state.dataSourceX}
|
|
|
+ pagination={this.state.paginations}
|
|
|
+ onRowClick={this.tableRowClickX}
|
|
|
+ />
|
|
|
+ </Spin>
|
|
|
+ </div>
|
|
|
+ <div className='addSave' style={{marginTop:'15px'}}>
|
|
|
+ <Button className="cancel" type="primary" onClick={this.examOk} style={{marginLeft:"200px"}} htmlType="submit">通过</Button>
|
|
|
+ <Button className="cancel" type="primary" onClick={this.examNo} style={{marginLeft:"50px"}} htmlType="submit">驳回</Button>
|
|
|
+ <Button className="cancel" type="ghost" onClick={this.visitCancel} style={{marginLeft:"50px"}}>取消</Button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Spin>
|
|
|
+ </Form>
|
|
|
+ </Modal>
|
|
|
+ <Modal maskClosable={false} visible={this.state.addnextVisible}
|
|
|
+ onOk={this.nextCancel} onCancel={this.nextCancel}
|
|
|
+ width='800px'
|
|
|
+ title={'项目任务详情'}
|
|
|
+ footer=''
|
|
|
+ className="admin-desc-content">
|
|
|
+ <Form layout="horizontal" id="demand-form">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="项目名称" >
|
|
|
+ <span>{this.state.commodityName}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="项目数量" >
|
|
|
+ <span>{this.state.commodityQuantity}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="金额(万元)" >
|
|
|
+ <span>{this.state.commodityPrice}</span>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
+ label="主要项目" >
|
|
|
+ <span>{getboutique(this.state.main)}</span>
|
|
|
+ </FormItem>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <FormItem
|
|
|
+ labelCol={{ span: 4 }}
|
|
|
+ wrapperCol={{ span: 16 }}
|
|
|
+ label="服务说明" >
|
|
|
+ <span>{this.state.taskComment}</span>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Spin>
|
|
|
+ </Form >
|
|
|
+ </Modal>
|
|
|
+ <Modal maskClosable={false} visible={this.state.noVisible}
|
|
|
+ onOk={this.noCancel} onCancel={this.noCancel}
|
|
|
+ width='400px'
|
|
|
+ title={'拒绝理由'}
|
|
|
+ footer=''
|
|
|
+ className="admin-desc-content">
|
|
|
+ <Form layout="horizontal" id="demand-form">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <FormItem
|
|
|
+ labelCol={{ span: 4 }}
|
|
|
+ wrapperCol={{ span: 16 }}
|
|
|
+ label="拒绝理由" >
|
|
|
+ <Input type="textarea" placeholder="请输入拒绝理由" rows={4} value={this.state.reason}
|
|
|
+ onChange={(e)=>{this.setState({reason:e.target.value})}}/>
|
|
|
+ </FormItem>
|
|
|
+ </div>
|
|
|
+ <div className='clearfix'>
|
|
|
+ <Button className="cancel" type="primary" onClick={this.examOks} style={{marginLeft:"50px"}} htmlType="submit">确定</Button>
|
|
|
+ <Button className="cancel" type="ghost" onClick={this.noCancel} style={{marginLeft:"50px"}}>取消</Button>
|
|
|
+ </div>
|
|
|
+ </Spin>
|
|
|
+ </Form >
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+}));
|
|
|
+export default IntentionCustomer;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|