dengzhiguo 6 years ago
parent
commit
17bec1462a

+ 1 - 0
js/component/manageCenter/order/orderNew/billing.jsx

@@ -23,6 +23,7 @@ const MyService=Form.create()(React.createClass({
             data: {
                 pageNo: pageNo || 1,
                 pageSize: this.state.pagination.pageSize,
+                specially:0,
                 name:this.state.customerName,
                 orderNo:this.state.orderNo,
                 starTime: this.state.releaseDate[0],

+ 2 - 2
js/component/manageCenter/order/orderNew/examine.jsx

@@ -569,7 +569,7 @@ const IntentionCustomer = Form.create()(React.createClass({
                     <span>订单审核</span>
                 </div>
                	<div className="user-search">                    
-                   <Input placeholder="客户名称" style={{width:'150px'}}
+                   <Input placeholder="客户名称" style={{width:'150px',marginBottom:'10px'}}
 	                        value={this.state.customerName}
 	                        onChange={(e) => { this.setState({ customerName: e.target.value }); }} />
                     <Input placeholder="订单编号" style={{width:'150px'}}
@@ -580,7 +580,7 @@ const IntentionCustomer = Form.create()(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 }); }} />
-                    <Button type="primary" onClick={this.search}>搜索</Button>
+                    <Button type="primary" onClick={this.search} style={{marginLeft:'10px'}}>搜索</Button>
                     <Button onClick={this.reset}>重置</Button> 
                    	<div className="patent-table">
 	                    <Spin spinning={this.state.loading}>

+ 345 - 66
js/component/manageCenter/order/orderNew/reject.jsx

@@ -1,11 +1,11 @@
 import React from 'react';
-import { Radio, Icon, Button, AutoComplete,Cascader,Input, Select, Spin, Popconfirm, Table, Switch, message,Calendar , DatePicker, Upload, Form ,Modal,Tabs,Card } from 'antd';
+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 { } from '@/dataDic.js';
-import { getLiquidationStatus,getApprovedState,getProcessStatus} from '@/tools.js';
+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;
@@ -88,7 +88,7 @@ const IntentionCustomer = Form.create()(React.createClass({
 			data: {
 				pageNo: pageNo || 1,
 				pageSize: this.state.pagination.pageSize,
-				processStatus: 1,//审核列表
+				specially: 2,//审核列表
 				name: this.state.name,//名称
 				orderNo: this.state.orderNo,//订单编号
 				starTime: this.state.releaseDate[0],//开始时间
@@ -208,6 +208,67 @@ const IntentionCustomer = Form.create()(React.createClass({
 			],
 			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?'已完成':'催款中'
+					}
+				},
+			],
 		}
 	},
 	//页面加载函数
@@ -218,11 +279,33 @@ const IntentionCustomer = Form.create()(React.createClass({
 	tableRowClick(record, index) {
 		this.setState({
 			visible:true,
-			orderNo:record.orderNo
 		});
 		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",
@@ -272,6 +355,7 @@ const IntentionCustomer = Form.create()(React.createClass({
 			});
 		}.bind(this));
 	},
+	//项目列表
 	xiangmu(orderNos) {
 		$.ajax({
 			method: "get",
@@ -289,29 +373,130 @@ const IntentionCustomer = Form.create()(React.createClass({
 						message.warning(data.error[0].message);
 					};
 				} else {
-					let thisdata=data.data;
+					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,
+                    pagination: false,
+                });
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	//节点列表
+	jiedian(orderNos) {
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +"/open/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 +"/open/api/admin/newOrder/auditOrderNew",
+			data: {
+				orderNo:this.state.orderNo,
+				orderStatus: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({
-						 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,//财务电话
-					})
+						visible:false,
+					});
+					this.loadData();
+				};
+				
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	//审核通过
+	examOks(){
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +"/open/api/admin/newOrder/auditOrderNew",
+			data: {
+				orderNo:this.state.orderNo,
+				orderStatus: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();
 				};
 				
 			}.bind(this),
@@ -321,6 +506,25 @@ const IntentionCustomer = Form.create()(React.createClass({
 			});
 		}.bind(this));
 	},
+	//点击拒绝
+	examNo(){
+		this.setState({
+			noVisible:true
+		})
+	},
+	//关闭输入理由框
+	noCancel(){
+		this.setState({
+			noVisible:false
+		})
+	},
+	//搜索
+	search() {
+    	this.setState({
+    		//signBillVisible:false
+    	})
+        this.loadData();
+    },
 	getOrgCodeUrl(e) {
         this.setState({ orgCodeUrl: e });
     },
@@ -406,10 +610,9 @@ const IntentionCustomer = Form.create()(React.createClass({
 			                            <span>{this.state.orderNo}</span>
 		                    		</FormItem>
 		                    		<FormItem className="half-item"
-				                            {...formItemLayout}
-				                            label="合同编号" >                             
-			                                    <Input placeholder="请输入合同编号" value={this.state.contractNo}
-			                                    	onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'240px'}} />
+			                            {...formItemLayout}
+			                            label="合同编号" >  
+			                            <span>{this.state.contractNo}</span>
 				                    </FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -419,15 +622,7 @@ const IntentionCustomer = Form.create()(React.createClass({
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="合同签订时间" >   
-			                            <DatePicker
-			                              style={{marginTop:"2px",width: '240px',height:"32px" }}
-									      showTime
-									      format="YYYY-MM-DD"
-									      placeholder="合同签订时间"
-									      value={this.state.signDate}
-									      onChange={(e,time)=>{this.selTime(e,time)}}
-									    />
-									    <span className="mandatory">*</span>
+			                            <span>{this.state.signDate}</span>
 		                    		</FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -439,40 +634,35 @@ const IntentionCustomer = Form.create()(React.createClass({
 			                            label="结算状态" >  
 			                            <span>{getLiquidationStatus(this.state.liquidationStatus)}</span>
 		                    		</FormItem>
-		                    		
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="企业联系人" >                             
-		                                    <Input placeholder="请输入联系人" ref='signTotalAmount' value={this.state.contacts} onChange={(e)=>{this.setState({contacts:e.target.value})}} style={{width:'240px'}} />
-				                   			<span className="mandatory">*</span>
+		                                <span>{this.state.contacts}</span>
 				                    </FormItem>
 				                     <FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="联系人电话" >                             
-		                                    <Input placeholder="请输入联系人电话" ref='signTotalAmount' value={this.state.contactMobile} onChange={(e)=>{this.setState({contactMobile:e.target.value})}} style={{width:'240px'}} />
-				                   			<span className="mandatory">*</span>
+		                                <span>{this.state.contactMobile}</span>
 				                    </FormItem>
 				                    <FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="企业法人" >                             
-		                                    <Input placeholder="请输入法人" ref='signTotalAmount' value={this.state.legalPerson} onChange={(e)=>{this.setState({legalPerson:e.target.value})}} style={{width:'240px'}} />
-				                    </FormItem>
+		                                <span>{this.state.legalPerson}</span>
+		                            </FormItem>
 				                     <FormItem className="half-item"
 			                            {...formItemLayout}
-			                            label="法人电话" >                             
-		                                    <Input placeholder="请输入法人电话" ref='signTotalAmount' value={this.state.legalPersonTel} onChange={(e)=>{this.setState({legalPersonTel:e.target.value})}} style={{width:'240px'}} />
+			                            label="法人电话" >  
+			                             <span>{this.state.legalPersonTel}</span>
 				                    </FormItem>
 				                    <FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="签单金额(万元)" >                             
-		                                    <Input placeholder="签单金额" ref='signTotalAmount' value={this.state.firstAmount} onChange={(e)=>{this.setState({firstAmount:e.target.value})}} style={{width:'240px'}} />
-				                   			<span className="mandatory">*</span>
+		                                 <span>{this.state.firstAmount}</span>
 				                    </FormItem>
 				                    <FormItem className="half-item"
-				                            {...formItemLayout}
-				                            label="首付金额(万元)" >                             
-			                                    <Input placeholder="请输入实签首款金额" ref='signFirstPayment' value={this.state.totalAmount} onChange={(e)=>{this.setState({totalAmount:e.target.value})}} style={{width:'240px'}} />
-				                    		<span className="mandatory">*</span>
+			                            {...formItemLayout}
+			                            label="首付金额(万元)" >                             
+		                                <span>{this.state.totalAmount}</span>
 				                    </FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -481,16 +671,15 @@ const IntentionCustomer = Form.create()(React.createClass({
 		                    		</FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
-			                            label="已收款项" >  
-			                            <span>{this.state.settlementAmount+'万元'}</span>
+			                            label="已收款项(万元)" >  
+			                            <span>{this.state.settlementAmount}</span>
 		                    		</FormItem>
 				                    <div className='clearfix'>
 							        	<FormItem
 								            labelCol={{ span: 4 }}
 								            wrapperCol={{ span: 16 }}
 								            label="订单留言" >
-								                <Input type="textarea" placeholder="请输入订单留言" rows={4}  value={this.state.orderRemarks} 
-									    				onChange={(e)=>{this.setState({orderRemarks:e.target.value})}}/>			                      
+							        	 <span>{this.state.orderRemarks}</span>
 								        </FormItem>
 							        </div>
 				                    <div className='clearfix'>
@@ -519,7 +708,7 @@ const IntentionCustomer = Form.create()(React.createClass({
 			                    		<FormItem className="half-item"
 				                            {...formItemLayout}
 				                            label="订单负责人电话" >  
-                            				<span>{this.state.projectType}</span>
+                            				<span>{this.state.salesmanMobile}</span>
 			                    		</FormItem>
 			                    	</div>
 			                    	<div className='clearfix'>
@@ -531,12 +720,40 @@ const IntentionCustomer = Form.create()(React.createClass({
 			                    		<FormItem className="half-item"
 				                            {...formItemLayout}
 				                            label="财务负责人电话" >  
-                            				<span>{this.state.projectType}</span>
+                            				<span>{this.state.financeMobile}</span>
 			                    		</FormItem>
 			                    	</div>
 			                    	<div>
-					                	<span style={{marginLeft:'50px',fontSize:'20px'}}>项目业务</span>
-					                </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.pagination}
+								                            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>
@@ -546,10 +763,72 @@ const IntentionCustomer = Form.create()(React.createClass({
 				            </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>
 			);
 	}

+ 1 - 1
webpack.config.js

@@ -307,7 +307,7 @@ module.exports = (function () {
     let staticHost = 'http://192.168.0.190';
     switch (argv.env.deploy) {
         case 'test':
-            staticHost = 'http://static.jishutao.com';
+            staticHost = 'http://static.kedexinxi.com';
             break;
         case 'prod':
             staticHost = 'http://s.kedexinxi.com';