Browse Source

Merge branch 'master' of ssh://git.jishutao.com:55555/jishutao/web

dengzhiguo 7 years ago
parent
commit
4cd2cb038f
47 changed files with 2170 additions and 374 deletions
  1. 26 1
      js/component/dataDic.js
  2. 1 1
      js/component/manageCenter/achievement/content.jsx
  3. 0 1
      js/component/manageCenter/achievement/releaseResults.jsx
  4. 11 15
      js/component/manageCenter/achievement/techAchievement.jsx
  5. 0 2
      js/component/manageCenter/achievement/techAchievementAudit/auditDesc.jsx
  6. 11 15
      js/component/manageCenter/achievement/techAchievementAudit/techAchievementAudit.jsx
  7. 1 0
      js/component/manageCenter/achievement/techAchievementDesc.jsx
  8. 10 15
      js/component/manageCenter/achievement/techAchievementRelease/techAchievementAudit.jsx
  9. 1 1
      js/component/manageCenter/customer/content.jsx
  10. 4 4
      js/component/manageCenter/customer/customerData/myClient.jsx
  11. 4 4
      js/component/manageCenter/customer/customerManagement/organizationManages.jsx
  12. 3 3
      js/component/manageCenter/customer/customerManagement/publicManages.jsx
  13. 10 1
      js/component/manageCenter/customer/individualCustomer/individualCustomer.jsx
  14. 0 0
      js/component/manageCenter/customer/individualCustomer/intentionCustomer/personalIntention.jsx
  15. 1 1
      js/component/manageCenter/demand/content.jsx
  16. 9 15
      js/component/manageCenter/demand/demandAudit/techDemandAudit.jsx
  17. 9 15
      js/component/manageCenter/demand/demandRelease/techDemandRelease.jsx
  18. 4 1
      js/component/manageCenter/demand/myTechDemand.jsx
  19. 1 1
      js/component/manageCenter/idea/content.jsx
  20. 2 2
      js/component/manageCenter/idea/content.less
  21. 38 4
      js/component/manageCenter/idea/policy/manage.jsx
  22. 171 24
      js/component/manageCenter/index/content.jsx
  23. 1 1
      js/component/manageCenter/leftTab.jsx
  24. 1 1
      js/component/manageCenter/operate/content.jsx
  25. 27 0
      js/component/manageCenter/operate/messagePush/systemMessage.jsx
  26. 1 2
      js/component/manageCenter/order/content.jsx
  27. 326 10
      js/component/manageCenter/order/departmentOrder/servicesOrder/addService.jsx
  28. 0 5
      js/component/manageCenter/order/flowSettlement/billManage/myBillDetaile.jsx
  29. 0 5
      js/component/manageCenter/order/flowSettlement/billManagement/myBillDetaile.jsx
  30. 0 5
      js/component/manageCenter/order/flowSettlement/billQuery/myBillDetaile.jsx
  31. 0 5
      js/component/manageCenter/order/flowSettlement/myBill/myBillDetaile.jsx
  32. 337 19
      js/component/manageCenter/order/myOrder/servicesOrder/addService.jsx
  33. 6 0
      js/component/manageCenter/order/myOrder/servicesOrder/myService.jsx
  34. 34 12
      js/component/manageCenter/order/settlementOrder/mySettlement/mySettlement.jsx
  35. 300 8
      js/component/manageCenter/order/settlementOrder/mySettlement/mySettlementDetaile.jsx
  36. 14 0
      js/component/manageCenter/order/userMangagement.less
  37. 2 3
      js/component/manageCenter/publicMenu.jsx
  38. 1 1
      js/component/manageCenter/servicesManage/leftTab.jsx
  39. 1 1
      js/component/manageCenter/servicesManage/projectOrder/myTask/projectManage.jsx
  40. 148 2
      js/component/manageCenter/servicesManage/projectOrder/myTask/projectManageDetaile.jsx
  41. 48 11
      js/component/manageCenter/servicesManage/projectOrder/projectManagement/projectManage.jsx
  42. 549 129
      js/component/manageCenter/servicesManage/projectOrder/projectManagement/projectManageDetaile.jsx
  43. 1 1
      js/component/manageCenter/set/content.jsx
  44. 25 24
      js/component/manageCenter/topTab.jsx
  45. 1 1
      js/component/manageCenter/userOrder/content.jsx
  46. 29 2
      js/component/tools.js
  47. 1 0
      webpack.config.js

+ 26 - 1
js/component/dataDic.js

@@ -1953,7 +1953,7 @@ module.exports = {
 	        key: "退款待确认"
 	    }, {
 	        value: "4",
-	        key: "退款已同意"
+	        key: "退款"
 	    }, {
 	        value: "5",
 	        key: "退款已拒绝"
@@ -2081,4 +2081,29 @@ module.exports = {
 	        key: "材料已完成"
 	    }
     ],
+     //变更状态	
+    changeState:[
+    	{
+	        value: "0",
+	        key: "未变更"
+	    },{
+	        value: "1",
+	        key: "变更中"
+	    }, {
+	        value: "2",
+	        key: "变更完成"
+	    }
+    ], //变更状态	
+    distributeState:[
+    	{
+	        value: "0",
+	        key: "未分派"
+	    },{
+	        value: "1",
+	        key: "部分分派"
+	    }, {
+	        value: "2",
+	        key: "全部分派"
+	    }
+    ],
 };

+ 1 - 1
js/component/manageCenter/achievement/content.jsx

@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import '../content.less';
 import LeftTab from '../leftTab';
 import TechAchievement from './techAchievement';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 class Content extends Component {
     constructor() {

+ 0 - 1
js/component/manageCenter/achievement/releaseResults.jsx

@@ -298,7 +298,6 @@ const Organization=Form.create()(React.createClass({
     },
     componentWillMount() {
     	this.selectSuperIds();
-    	
     },
     examine(record) {
         this.setState({

+ 11 - 15
js/component/manageCenter/achievement/techAchievement.jsx

@@ -179,15 +179,13 @@ const AchievementList = React.createClass({
         });
         this.state.achievementCategoryOption = theArr;
         this.state.auditStatusOption = auditArr;
-        if (window.location.search) {
-            let theObj = getSearchUrl(window.location.search);
-            if (theObj.rid) {
-                theObj.id = theObj.rid;
-                if (theObj.rid != 'null') {
-                    this.tableRowClick(theObj);
-                };
-            };
-        };
+        //从信息中跳转到页面
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		console.log(newData);
+    		this.tableRowClick(newData);
+    	}
         this.loadData();
     },
     componentWillReceiveProps(nextProps) {
@@ -209,12 +207,10 @@ const AchievementList = React.createClass({
         };
     },
     tableRowClick(record, index) {
-        if(index!=undefined){
-        	this.setState({
-        		RowData:record,
-            	showDesc: true
-        	});
-        }
+    	this.setState({
+    		RowData:record,
+        	showDesc: true
+    	});
     },
     delectRow() {
         let deletedIds = [];

+ 0 - 2
js/component/manageCenter/achievement/techAchievementAudit/auditDesc.jsx

@@ -151,8 +151,6 @@ const AchievementDetailShow = Form.create()(React.createClass({
         this.setState({
             loading: true
         });
-      	console.log(ownerType);
-      	console.log(this.props.data.ownerType);
         $.ajax({
             method: "get",
             dataType: "json",

+ 11 - 15
js/component/manageCenter/achievement/techAchievementAudit/techAchievementAudit.jsx

@@ -173,15 +173,12 @@ const AchievementList = React.createClass({
         });
         this.state.achievementCategoryOption = theArr;
         this.state.auditStatusOption = auditArr;
-        if (window.location.search) {
-            let theObj = getSearchUrl(window.location.search);
-            if (theObj.rid) {
-                theObj.id = theObj.rid;
-                if (theObj.rid != 'null') {
-                    this.tableRowClick(theObj);
-                };
-            };
-        };
+        //管理中心跳转
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		this.tableRowClick(newData);
+    	};
         this.loadData();
     },
     componentWillReceiveProps(nextProps) {
@@ -203,12 +200,11 @@ const AchievementList = React.createClass({
         };
     },
     tableRowClick(record, index) {
-        if(index!=undefined){
-        	this.setState({
-        		RowData:record,
-            	showDesc: true
-        	});
-        }
+    	this.setState({
+    		RowData:record,
+        	showDesc: true
+    	});
+        localStorage.setItem('newData','{}');
     },
 //  delectRow() {
 //      let deletedIds = [];

+ 1 - 0
js/component/manageCenter/achievement/techAchievementDesc.jsx

@@ -341,6 +341,7 @@ const AchievementDetailShow = Form.create()(React.createClass({
     },
     componentWillMount() {
     	this.loadData(this.props.data.id, this.props.detailApiUrl);
+    	localStorage.setItem('newData','');
     },
     componentWillReceiveProps(nextProps) {
         if (!this.props.visible && nextProps.visible) {

+ 10 - 15
js/component/manageCenter/achievement/techAchievementRelease/techAchievementAudit.jsx

@@ -195,24 +195,19 @@ const AchievementList = React.createClass({
         });
         this.state.achievementCategoryOption = theArr;
         this.state.auditStatusOption = auditArr;
-        if (window.location.search) {
-            let theObj = getSearchUrl(window.location.search);
-            if (theObj.rid) {
-                theObj.id = theObj.rid;
-                if (theObj.rid != 'null') {
-                    this.tableRowClick(theObj);
-                };
-            };
-        };
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		this.tableRowClick(newData);
+    	};
         this.loadData();
     },
     tableRowClick(record, index) {
-        if(index!=undefined){
-        	this.setState({
-            	showDesc: true
-        	});
-        	this.state.RowData=record;
-        }
+        this.state.RowData=record;
+    	this.setState({
+        	showDesc: true
+    	});
+    	localStorage.setItem('newData','{}');
     },
      //撤销发布
     examineCancel(record){

+ 1 - 1
js/component/manageCenter/customer/content.jsx

@@ -1,7 +1,7 @@
 import React, { Component } from 'react';
 import '../content.less';
 import LeftTab from '../leftTab';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 class Content extends Component {
     constructor() {

+ 4 - 4
js/component/manageCenter/customer/customerData/myClient.jsx

@@ -1237,9 +1237,9 @@ const MyClient = Form.create()(React.createClass({
 	//拜访保存函数
 	visitSubmit(e) {
 		e.preventDefault();
-		let GlossoryId;
+		let GlossoryId=false;
 		this.state.data.map(function(item) {
-			if(!item.businessGlossoryId) {
+			if(!item.businessGlossoryId||!item.followSituation||!item.customerStatus) {
 				GlossoryId = true
 			}
 		})
@@ -1254,7 +1254,7 @@ const MyClient = Form.create()(React.createClass({
 			}
 		};
 		if(GlossoryId) {
-			message.warning("请选择业务名称!")
+			message.warning("业务名称/最新进度/最新状态不能为空!")
 			return false;
 		};
 		this.setState({
@@ -2102,7 +2102,7 @@ const MyClient = Form.create()(React.createClass({
                             };
                         }} >
                         <Button>上传批量内容</Button>
-                    </Upload>                        
+                    </Upload>   
 	               {adminData.isSuperAdmin?<Popconfirm title="是否删除?" onConfirm={this.delectRow} okText="是" cancelText="否">
 							     <Button type="danger" style={{marginLeft:'10px'}}
 	                       			 disabled={!hasSelected} 

+ 4 - 4
js/component/manageCenter/customer/customerManagement/organizationManages.jsx

@@ -1278,12 +1278,12 @@ const PublicCustomer = Form.create()(React.createClass({
 	//拜访保存函数
 	visitSubmit(e) {
 		e.preventDefault();
-		let GlossoryId;
+		let GlossoryId=false;
 		this.state.data.map(function(item) {
-			if(!item.businessGlossoryId) {
+			if(!item.businessGlossoryId||!item.followSituation||!item.customerStatus) {
 				GlossoryId = true
 			}
-		})
+		});
 		if(this.state.contactType == undefined) {
 			message.warning('请选择拜访方式')
 			return false;
@@ -1295,7 +1295,7 @@ const PublicCustomer = Form.create()(React.createClass({
 			}
 		};
 		if(GlossoryId) {
-			message.warning("请选择业务名称!")
+			message.warning("业务名称/最新进度/最新状态不能为空!")
 			return false;
 		};
 		this.setState({

+ 3 - 3
js/component/manageCenter/customer/customerManagement/publicManages.jsx

@@ -1321,9 +1321,9 @@ const PublicCustomer = Form.create()(React.createClass({
 	//拜访保存函数
 	visitSubmit(e) {
 		e.preventDefault();
-		let GlossoryId;
+		let GlossoryId=false;
 		this.state.data.map(function(item) {
-			if(!item.businessGlossoryId) {
+			if(!item.businessGlossoryId||!item.followSituation||!item.customerStatus) {
 				GlossoryId = true
 			}
 		})
@@ -1338,7 +1338,7 @@ const PublicCustomer = Form.create()(React.createClass({
 			}
 		};
 		if(GlossoryId) {
-			message.warning("请选择业务名称!")
+			message.warning("业务名称/最新进度/最新状态不能为空!")
 			return false;
 		};
 		this.setState({

+ 10 - 1
js/component/manageCenter/customer/individualCustomer/individualCustomer.jsx

@@ -1346,6 +1346,12 @@ const IndividualCustomer = Form.create()(React.createClass({
 	//拜访保存函数
 	visitSubmit(e) {
 		e.preventDefault();
+		let GlossoryId=false;
+		this.state.data.map(function(item) {
+			if(!item.businessGlossoryId||!item.followSituation||!item.customerStatus) {
+				GlossoryId = true
+			}
+		})
 		if(this.state.contactType == undefined) {
 			message.warning('请选择拜访方式')
 			return false;
@@ -1359,6 +1365,10 @@ const IndividualCustomer = Form.create()(React.createClass({
 		this.setState({
 			selectedRowKeys: [],
 		});
+		if(GlossoryId) {
+			message.warning("业务名称/最新进度/最新状态不能为空!")
+			return false;
+		};
 		this.setState({
 			loading: true
 		});
@@ -2163,7 +2173,6 @@ const IndividualCustomer = Form.create()(React.createClass({
                         }} >
                         <Button>上传批量内容</Button>
                     </Upload>                        
-										
 					{adminData.isSuperAdmin?<Button style={{ marginRight:'10px' ,marginLeft:'10px'}} type='danger'
 	                        disabled={!hasSelected} 
 	                        onClick={this.delectRow}>删除<Icon type="minus" />

+ 0 - 0
js/component/manageCenter/customer/individualCustomer/intentionCustomer/personalIntention.jsx


+ 1 - 1
js/component/manageCenter/demand/content.jsx

@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import '../content.less';
 import LeftTab from '../leftTab';
 import TechDemand from './techDemand';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 class Content extends Component {
     constructor() {

+ 9 - 15
js/component/manageCenter/demand/demandAudit/techDemandAudit.jsx

@@ -335,16 +335,11 @@ const TechDemandPublish = React.createClass({
             )
         });
         this.state.demandTypeOption = theArr;
-        if (window.location.search) {
-            let theObj = getSearchUrl(window.location.search);
-            if (theObj.rid) {
-                theObj.id = theObj.rid;
-                theObj.employerId = theObj.uid;
-                if (theObj.rid != 'null') {
-                    this.tableRowClick(theObj);
-                };
-            };
-        };
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		this.tableRowClick(newData);
+    	};
         this.loadData();
         this.getCompanyList();
         this.getUserList();
@@ -371,11 +366,10 @@ const TechDemandPublish = React.createClass({
     },
     tableRowClick(record, index) {
         this.state.RowData = record;
-        if(index!=undefined){
-        	this.setState({
-           	 showDesc: true
-        	});
-        }
+    	this.setState({
+       	   showDesc: true
+    	});
+    	localStorage.setItem('newData','{}');
     },
 //  delectRow() {
 //      let deletedIds = [];

+ 9 - 15
js/component/manageCenter/demand/demandRelease/techDemandRelease.jsx

@@ -345,16 +345,11 @@ const TechDemandPublish = React.createClass({
             )
         });
         this.state.demandTypeOption = theArr;
-        if (window.location.search) {
-            let theObj = getSearchUrl(window.location.search);
-            if (theObj.rid) {
-                theObj.id = theObj.rid;
-                theObj.employerId = theObj.uid;
-                if (theObj.rid != 'null') {
-                    this.tableRowClick(theObj);
-                };
-            };
-        };
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		this.tableRowClick(newData);
+    	};
         this.loadData();
         this.getCompanyList();
         this.getUserList();
@@ -381,11 +376,10 @@ const TechDemandPublish = React.createClass({
     },
     tableRowClick(record, index) {
         this.state.RowData = record;
-        if(index!=undefined){
-        	this.setState({
-           	 showDesc: true
-        	});
-        }
+    	this.setState({
+       	 showDesc: true
+    	});
+    	localStorage.setItem('newData','{}');
     },
 //  delectRow() {
 //      let deletedIds = [];

+ 4 - 1
js/component/manageCenter/demand/myTechDemand.jsx

@@ -245,6 +245,9 @@ const DemandList = React.createClass({
                 pageSize: 10,
                 onChange: function (page) {
                     this.loadData(page);
+                    this.setState({
+                    	page:page
+                    });
                 }.bind(this),
                 showTotal: function (total) {
                     return '共' + total + '条数据';
@@ -978,7 +981,7 @@ const DemandList = React.createClass({
     closeDesc(e, s) {
         this.state.showDesc = e;
         if (s) {
-            this.loadData();
+            this.loadData(this.state.page);
         };
     },
     search() {

+ 1 - 1
js/component/manageCenter/idea/content.jsx

@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import '../content.less';
 import './content.less';
 import LeftTab from '../leftTab';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 class Content extends Component {
     constructor() {

+ 2 - 2
js/component/manageCenter/idea/content.less

@@ -62,7 +62,7 @@
 
 .news-modal {
     .quill {
-        margin-top: 40px;
+        margin-top:10px;
         margin-bottom: 40px;
         .ql-editor {
             min-height: 400px;
@@ -114,7 +114,7 @@
     color: #999;
 }
 .jmrhFlag{margin-right: 15px;}
-.provin{width: 100px;height: 28px;line-height: 28px;border-radius: 4px;border-color: #d9d9d9;padding:4px 3px;transition: all .5s;}
+.provin{width: 100px;height: 28px;line-height: 28px;border-radius: 4px;border-color: #d9d9d9;padding:4px 0px;transition: all .5s;}
 .provin:focus{outline: none;box-shadow: 0px 0px 6px #80b9ff;border-color: #80b9ff;}
 
 .manage-content .content-right{background-color:#fff;}

+ 38 - 4
js/component/manageCenter/idea/policy/manage.jsx

@@ -142,7 +142,9 @@ const Manage=React.createClass({
                 };
                 this.setState({
                     RowData: theObj,
-                    callnubs:theObj.type.toString(),
+                    topNumber:data.data.topNumber,
+                    hotspot:data.data.hotspot,
+                    callnubs:theObj.type.toString()
                 });
             }.bind(this),
         }).always(function () {
@@ -280,6 +282,14 @@ const Manage=React.createClass({
             message.warning('必须填写一个作者!');
             return;
         };
+//      if(this.state.topNumber){
+//      	let topStr = this.state.topNumber.toString();
+//      	let stateReg = topStr.match(/^[0-9]*$/g);
+//      	if(!stateReg){
+//	        	message.warning('置顶请输入数字!')
+//	        	return false
+//     	    };
+//      }
         this.setState({
             loading: true
         });
@@ -303,6 +313,8 @@ const Manage=React.createClass({
                 content: this.state.RowData.content,
                 createTimeFormattedDate: this.state.RowData.createTimeFormattedDate,                   
                 provinceId: this.state.RowData.provinceId, 
+                topNumber:this.state.topNumber,
+                hotspot :this.state.hotspot 
             },                      
             success: function (data) {
                 if (data.error && data.error.length) {
@@ -461,7 +473,7 @@ const Manage=React.createClass({
 			 <div className="admin-content" >
 				 <div className="admin-content-search">
 				 	<Button type="primary" style={{ float: 'right' }}
-                        onClick={() => { this.setState({ RowData: {}, visible: true }) }}>
+                        onClick={() => { this.setState({ RowData: {}, visible: true ,topNumber :'',hotspot :1}) }}>
                         添加<Icon type="plus" />
                     </Button>
 	                <Input placeholder="标题" style={{ width: 200 ,marginBottom:'10px',marginRight:'10px'}}
@@ -633,7 +645,7 @@ const Manage=React.createClass({
                             <span className="modal-box-title">选择省份</span> 
                             <select  value={this.state.RowData.provinceId}  onChange={(e) => {
 	                                this.state.RowData.provinceId = e.target.value;
-	                                this.setState({RowData: this.state.RowData});
+	                                this.setState({RowData: this.state.RowData}); 
 	                            }} className="provin">
 						        {
 						          this.state.list.map(function(name){
@@ -643,7 +655,29 @@ const Manage=React.createClass({
 						          })
 						        }
 						        
-				        </select>
+				       		</select>
+                        </div>
+                      <div className="clearfix">
+                            <div className="modal-box news-box">
+                                <span className="modal-box-title">置顶序号:</span>
+                                <div className="modal-box-detail">
+                                    <Input value={this.state.topNumber } placeholder="请输入数字"
+                                        onChange={(e) => {
+                                            this.setState({ topNumber:e.target.value});
+                                        }} />
+                                </div>
+                            </div>
+                            <div className="modal-box news-box">
+                                <span className="modal-box-title">热门:</span>
+                                <div className="modal-box-detail">
+                                   	<Radio.Group value={this.state.hotspot} onChange={(e) => {
+                                        this.setState({ hotspot : e.target.value });
+                                  		  }} >
+                                        <Radio value={1}>否</Radio>
+                                        <Radio value={0}>是</Radio>
+                                    </Radio.Group>
+                                </div>
+                            </div>   	                           
                         </div>
                         <Editors textContent={this.state.RowData.content}
                             uploadUrl={'/api/admin/news/upload'}

+ 171 - 24
js/component/manageCenter/index/content.jsx

@@ -49,30 +49,12 @@ const MessageModal = React.createClass({
                     dataIndex: 'noticeType',
                     key: 'noticeType',
                     render: (text, record) => {
-                        switch (text) {
-                            case 1:
-                                return <a href={globalConfig.context + "/admin/servicesManage/patent.html?rid=" + record.rid + "&uid=" + record.uid + "#comprehensive"}> {record.noticeTypeName} </a>;
-                            case 3:
-                                return <a href={globalConfig.context + "/admin/servicesManage/copyright.html?rid=" + record.rid + "&uid=" + record.uid + "#copyright"}> {record.noticeTypeName} </a>;
-                            case 2:
-                                return <a href={globalConfig.context + "/admin/servicesManage/highTech.html?rid=" + record.rid + "&uid=" + record.uid + "&year=" + record.year + "#highTechApply"}> {record.noticeTypeName} </a>;
-                            case 4:
-                                return <a href={globalConfig.context + "/admin/servicesManage/technology.html?rid=" + record.rid + "&uid=" + record.uid + "#applyManage"}> {record.noticeTypeName} </a>;
-                            case 5:
-                                return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=0" + (window.showUserList ? "#userList" : "#customerList")}> {record.noticeTypeName} </a>;
-                            case 6:
-                                return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=1" + (window.showOrgList ? "#orgList" : "#customerList")}> {record.noticeTypeName} </a >;
-                            case 7:
-                                return <a href={globalConfig.context + "/admin/servicesManage/contract.html?rid=" + record.rid + "&uid=" + record.uid + "#contract"}> {record.noticeTypeName} </a >;
-                            case 8:
-                                return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "#techDemandUser"}> {record.noticeTypeName} </a >;
-                            case 9:
-                                return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "&uid=" + record.uid + "#techDemandOrg"}> {record.noticeTypeName} </a >;
-                            case 10:
-                                return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#orgTechAchievement"}> {record.noticeTypeName} </a >;
-                            case 11:
-                                return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#userTechAchievement"}> {record.noticeTypeName} </a >;
-                        }
+//                      return <div>{
+//                   		text<8?<a href='#' onClick={(e) =>{ e.stopPropagation(),this.setStore(record)}}> {record.noticeTypeName} </a >:
+//                      <span>{record.noticeTypeName}</span>
+//                          }</div>
+						//return <a href='#' onClick={(e) =>{ e.stopPropagation(),this.setStore(record)}}> {record.noticeTypeName} </a >
+                       return(<span>{record.noticeTypeName}</span>)  
                     }
                 }, {
                     title: '时间',
@@ -95,6 +77,170 @@ const MessageModal = React.createClass({
             data: []
         };
     },
+    //主菜单请求
+    mainMenu(){
+    	this.setState({
+    		loading:true
+    	});
+    	$.ajax({
+    		method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/selectNavList",
+            data: {
+            	
+            },
+            success:function(data){
+            	if (!data.data) {
+	                if (data.error && data.error.length) {
+	                    message.warning(data.error[0].message);
+	                    return;
+	                };
+	            };
+	           this.setState({
+	           		menu:data.data
+	           });
+            }.bind(this),
+    	}).always(function(data){
+    		this.setState({
+    			loading:false
+    		})
+    	}.bind(this))
+    },
+    finId(text){
+    	var data=this.state.menu||[];
+    	var rid='';
+	  	switch(text) {
+			case 1:
+				data.map(function(nub, index) {
+					if(nub.url.indexOf('demand') != -1) {
+						rid = nub.id;
+					}
+				});
+				break;
+			case 2:
+				data.map(function(nub, index) {
+					if(nub.url.indexOf('demand') != -1) {
+						rid = nub.id;
+					}
+				});
+				break;
+			case 3:
+				data.map(function(nub, index) {
+					if(nub.url.indexOf('achievement') != -1) {
+						rid = nub.id;
+					}
+				});
+				break;
+			case 4:
+				data.map(function(nub, index) {
+					if(nub.url.indexOf('achievement') != -1) {
+						rid = nub.id;
+					}
+				});
+				break;
+			case 5:
+				data.map(function(nub, index) {
+					if(nub.url.indexOf('order') != -1) {
+						rid = nub.id;
+					}
+				});
+				break;
+			case 6:
+				data.map(function(nub, index) {
+					if(nub.url.indexOf('order') != -1) {
+						rid = nub.id;
+					}
+				});
+				break;
+			case 7:
+				data.map(function(nub, index) {
+					if(nub.url.indexOf('servicesManage') != -1) {
+						rid = nub.id;
+					}
+				});	
+				break;
+			default:
+				rid='';
+		}
+    	return rid;
+    },
+    //跳转详情
+    setStore(record){
+    	localStorage.setItem('newData',{});
+    	let ids = record.noticeType;
+    	console.log(record);
+    	ids=7;
+    	let rid = this.finId(ids) || "";
+    	var urls='',
+    	    dataJson={};
+    	switch (ids) {
+            case 1:
+                urls = "/admin/demand.html?rid=" + rid +"#techDemandAudit";
+                dataJson = {
+                	"id":record.uid,
+                	//"id":"3f93588b-332e-4353-bbfd-f1451b4b390c",
+                	"dataCategory":"0"
+                };
+                break;
+            case 2:
+                urls = "/admin/demand.html?rid=" + rid+ "#techDemandPublish";
+                dataJson = {
+                	"id":record.uid,
+                	//"id":"40f77e32-29fa-4a85-a6f0-7c4986bdc5e3",
+                	"dataCategory":'1'
+                };
+                break ;
+            case 3:
+                urls =  "/admin/achievement.html?rid=" + rid +"#techAchievementAudit";
+           		dataJson = {
+           			"id":record.uid,
+           			//"id":"f09d5c08-4a8b-48a6-9753-86006f1a53cb",
+           			"ownerType":'1'
+           		};
+           		break ;
+            case 4:
+                urls = "/admin/achievement.html?rid=" + rid + "#techAchievementPublish";
+                dataJson = {
+           			"id":record.uid,
+           			//"id":"953c9ef7-6cf6-4ab7-af89-c01521998fed",
+                	"ownerType":'1'
+           		};
+           		break ;
+            case 5:
+                urls = "/admin/order.html?rid=" + rid + "#myService";
+            	dataJson = {
+            		"orderNo":record.orderNo
+           			//"orderNo":"175557414077480960"
+           		};
+           		break ;
+            case 6:
+                urls = "/admin/order.html?rid=" + rid + "#mySettlement";
+            	dataJson = {
+           			"orderNo":record.orderNo
+           			//"orderNo":"180714111314051072"
+           		};
+           		break ;
+            case 7:
+                urls = "/admin/servicesManage/projectOrder.html?rid=" + rid + "#projectManage";
+           		dataJson = {
+           			//"id":record.id,
+           			"id":"69e2d8ca984240a4b9c90daac69fe5e3",
+           			"buyerType":"1"
+           		};
+           		break ;
+           	default :
+           	    urls:'#';
+           	    dataJson = {};
+          };
+          console.log(rid);
+          if(rid){
+	    	  var data = dataJson;
+	    	  var newData = JSON.stringify(data);
+	    	  localStorage.setItem('newData',newData);
+	    	  window.location.href = globalConfig.context +urls;
+          }
+    },
     loadReaded(pageNo) {
         this.state.data = [];
         this.setState({
@@ -202,6 +348,7 @@ const MessageModal = React.createClass({
     componentWillMount() {
         this.loadReaded();
         this.loadUnread();
+        this.mainMenu();
     },
     render() {
         return (

+ 1 - 1
js/component/manageCenter/leftTab.jsx

@@ -3,7 +3,7 @@ import { Menu, Icon } from 'antd';
 import './leftTab.less';
 const SubMenu = Menu.SubMenu;
 const MenuItemGroup = Menu.ItemGroup;
-import {getMenu} from './publicMenu.jsx'
+import {getMenu} from './publicMenu.js'
 
 const LeftTab = React.createClass({
     getInitialState() {

+ 1 - 1
js/component/manageCenter/operate/content.jsx

@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import '../content.less';
 import './content.less';
 import LeftTab from '../leftTab';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 class Content extends Component {
     constructor() {

+ 27 - 0
js/component/manageCenter/operate/messagePush/systemMessage.jsx

@@ -1061,6 +1061,32 @@ const SystemMessage=Form.create()(React.createClass({
 			managerIdOrganization:e
 		})
 	},
+	//修复数据
+	repairData(){
+		this.setState({
+            loading: true
+        });
+         $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context +"/api/admin/order/repairData" ,
+            success: function (data) {
+               if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                }
+               if(!data.error.length){
+                	message.success('操作成功');
+                }
+             }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+	},
     addClick() {
     	this.state.addTitle= undefined;//消息标题
     	this.state.addContent= undefined;//消息内容
@@ -1364,6 +1390,7 @@ const SystemMessage=Form.create()(React.createClass({
             <div className="user-content" >
                 <div className="content-title">
 	                <div className="user-search">
+	                	<Button type="danger" className="addButton" onClick={this.repairData}>修复数据</Button>
 	                	<Button type="primary" className="addButton" onClick={this.addClick}>创建系统消息<Icon type="plus" /></Button>
 	                	<Button type="primary" onClick={this.bianji} style={!this.state.bianjiMore ? { display: 'none',float:'right',marginRight:'10px'} : {display: 'inline-block',float:'right',marginRight:'10px'}} disabled={!hasSelected}>编辑</Button>
 	                	<div style={!this.state.bianjiMore ? { display: 'none',float:'right',marginRight:'10px'} : {display: 'inline-block',float:'right',marginRight:'10px',marginTop:'10px'}}>

+ 1 - 2
js/component/manageCenter/order/content.jsx

@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import '../content.less';
 import './content.less';
 import LeftTab from '../leftTab';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 
 class Content extends Component {
@@ -115,7 +115,6 @@ class Content extends Component {
             //订单新增空白
             default:
             require.ensure([], () => {
-            	
                 const Module = require('../module').default;
                 this.setState({
                     component:<Module />	    

+ 326 - 10
js/component/manageCenter/order/departmentOrder/servicesOrder/addService.jsx

@@ -1,10 +1,10 @@
 import React from 'react';
-import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,DatePicker} from 'antd';
+import { Icon, Table, Modal, message, Spin, Input, Select, Button, Radio,Form ,Upload,Popconfirm,AutoComplete,DatePicker} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import '../../userMangagement.less';
 import {orderType} from '../../../../dataDic.js';  
-import {splitUrl,getOrderType,getOrderStage,getProjectState,getOrderState,getTransactionProject,getPaymentState,getOrderChannel,getApprovedState,getLock,getPaymentMethod,getTransactionChannel,beforeUploadFile} from '../../../../tools.js';
+import {splitUrl,getOrderType,getOrderStage,getProjectState,getOrderState,getTransactionProject,getChangeState,getPaymentState,getOrderChannel,getApprovedState,getLock,getPaymentMethod,getTransactionChannel,beforeUploadFile} from '../../../../tools.js';
 const Option = AutoComplete.Option;
 //图片组件
 const PicturesWall = React.createClass({
@@ -161,7 +161,7 @@ const NewService = Form.create()(React.createClass({
                     dataIndex: 'ABC',
                     key: 'ABC',
                     render: (text, record, index) => {
-						return <div style={{display:this.props.datauser.active.applySign?'block':'none'}}>
+						return <div style={{display:this.props.datauser.active.applySign||this.state.changeStatus==1?'block':'none'}}>
 								<Popconfirm title="是否删除?" onConfirm={(e)=>{this.delectRow(record)}} okText="是" cancelText="否">
 								    <Button onClick={(e) =>{ e.stopPropagation()}} type="danger">删除</Button>                 
 								</Popconfirm>
@@ -285,15 +285,14 @@ const NewService = Form.create()(React.createClass({
 	},
 	//查看基本详情基本信息
     loaduser(record){
-    	if(record){
-    	this.state.orderList=[]
+    	this.state.orderList=[];
     	$.ajax({
             method: "get",
 			dataType: "json",
 			crossDomain: false,
 			url: globalConfig.context + '/api/admin/order/getServiceOrderDetail',
             data: {
-              orderNo: record.orderNo
+              orderNo: record?record.orderNo:this.props.datauser.orderNo
             },
             success: function (data) {
                 let thisData = data.data;                
@@ -306,6 +305,7 @@ const NewService = Form.create()(React.createClass({
                 this.setState({
 					id:thisData.id,
 					orderList:thisData,
+					changeStatus:thisData.changeStatus,
 					orderAmount:thisData.orderAmount,
 					firstPayment:thisData.firstPayment,
 					signTotalAmount:thisData.signTotalAmount,
@@ -324,7 +324,6 @@ const NewService = Form.create()(React.createClass({
                 loading: false
             });
         }.bind(this));  
-       }
     },
 	handleOk(e) {
 		this.setState({
@@ -736,6 +735,166 @@ const NewService = Form.create()(React.createClass({
 			lookVisible:false
 		})
 	},
+	/* -----变更操作开始----- */
+	//新建变更
+	addChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:1,
+			changeRemarks:''
+		})
+	},
+	//产看变更记录
+	lookChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:0
+		})
+		this.lookChangeData()
+	},
+	//查看变更列表修改变更
+	modifyChangeCancel(){
+		this.setState({
+			modifyChangeState:false
+		})
+	},
+	//获取变更记录
+	lookChangeData(){
+		this.setState({
+			loading:true
+		});
+		 $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context +'/api/admin/order/viewOrderChange',
+            data: {
+            	orderNo:this.props.datauser.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        theArr = data.data;
+                    };
+                };
+                this.setState({
+                    changeHtml: theArr,
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+	},
+	//添加变更状态
+	addChangeCancel(){
+		this.setState({
+			addChangeState:false
+		})
+	},
+	//新建变更
+	subChangeState(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/addOrderChange' ,
+			data: {
+				orderNo:this.props.datauser.orderNo,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.addChangeCancel();
+				this.loaduser();
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//查看修改变更
+	modifyChange(item){
+		this.setState({
+			modifyChangeState:true,
+			changePromoter:item.creater,
+			changeTime:item.createTime,
+			changeState:item.changeStatus,
+			changeRemarks:item.changeComment,
+			idt:item.changeId,
+			orderNot:item.orderNo
+		})
+	},
+	//删除变更
+	modifyDelete(item){
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/deleteOrderChange' ,
+			data: {
+				changeId:item.changeId,
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('删除成功!');
+				this.lookChangeData();
+				this.loaduser()
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//修改变更保存
+	changeModify(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/updateOrderChange' ,
+			data: {
+				changeId:this.state.idt,
+				changeStatus:this.state.changeState,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.modifyChangeCancel();
+				this.lookChangeData();
+				this.loaduser()
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	/*-----变更操作结束----*/
 	componentWillReceiveProps(nextProps) { //props改变时触发
 		this.state.visible = nextProps.showDesc;
 		this.state.signBillVisible=nextProps.signBillVisible;
@@ -760,6 +919,7 @@ const NewService = Form.create()(React.createClass({
 			labelCol: { span: 8 },
 			wrapperCol: { span: 14 },
 		};
+		const changeHtml=this.state.changeHtml ||[];
 		const editFws=this.state.editFw;
 		const orderDetaiel=this.state.orderList || []
 		const dataSources=this.state.customerArr || [];
@@ -832,7 +992,7 @@ const NewService = Form.create()(React.createClass({
 							                            label="市价首款金额" >   
 							                            <span>{orderDetaiel.firstPayment+'万元'}</span>
 								                    </FormItem>
-								                    {orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2?
+								                    {orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2||orderDetaiel.changeStatus==1?
 							                    	<div className='clearfix'>
 									                    <FormItem className="half-item"
 								                            {...formItemLayout}
@@ -866,6 +1026,28 @@ const NewService = Form.create()(React.createClass({
 														    				onChange={(e)=>{this.setState({orderRemarks:e.target.value})}}/>			                      
 													        </FormItem>
 												        </div>
+												        <div className='clearfix'>
+												        	<div className="changeStatusTxt">
+													        	<FormItem className="half-item"
+														            {...formItemLayout}
+														            style={{color:'red'}}
+														            label="变更状态" >
+													        		<span>{getChangeState(orderDetaiel.changeStatus)}</span>
+														        </FormItem>
+													        </div>
+													        {orderDetaiel.orderStatus>=3&&<div className="clearfix">
+													        	<FormItem className="half-item"
+													            	{...formItemLayout}
+													           		label="变更操作" >
+												        			<Button onClick={this.addChange}>添加变更</Button>
+													        	</FormItem>
+													        	<FormItem className="half-item"
+													            	{...formItemLayout}
+													           		label="变更操作" >
+												        			<Button onClick={this.lookChange}>查看变更纪录</Button>
+													        	</FormItem>
+												            </div>}
+												        </div>
 											        </div>:
 											        <div className='clearfix'>
 											        	<FormItem className="half-item"
@@ -921,6 +1103,26 @@ const NewService = Form.create()(React.createClass({
 												        		<span>{orderDetaiel.orderRemarks}</span>
 													        </FormItem>
 												        </div>
+												        <div className='clearfix changeStatusTxt'>
+												        	<FormItem className="half-item"
+													            {...formItemLayout}
+													            style={{color:'red'}}
+													            label="变更状态" >
+												        		<span>{getChangeState(orderDetaiel.changeStatus)}</span>
+													        </FormItem>
+												        </div>
+												        {orderDetaiel.orderStatus>=3&&<div className="clearfix">
+												        	<FormItem className="half-item"
+												            	{...formItemLayout}
+												           		label="变更操作" >
+											        			<Button onClick={this.addChange}>添加变更</Button>
+												        	</FormItem>
+												        	<FormItem className="half-item"
+												            	{...formItemLayout}
+												           		label="变更操作" >
+											        			<Button onClick={this.lookChange}>查看变更纪录</Button>
+												        	</FormItem>
+												        </div>}
 											        </div>}
 										        <div className='clearfix'>
 						                    		<FormItem className="half-item"
@@ -969,7 +1171,7 @@ const NewService = Form.create()(React.createClass({
 					                    		</div>
 					                    		<div>
 								                	<span style={{marginLeft:'50px',fontSize:'20px'}}>项目业务</span>
-								                	{this.props.datauser.active.applySign?<Button type='primary' onClick={this.addDetailed} style={{float:'right',marginRight:'50px',marginBottom:'15px',display:true?'block':'none'}}>添加明细</Button>:''}
+								                	{this.props.datauser.active.applySign||orderDetaiel.changeStatus==1?<Button type='primary' onClick={this.addDetailed} style={{float:'right',marginRight:'50px',marginBottom:'15px',display:true?'block':'none'}}>添加明细</Button>:''}
 								                </div>
 								                <div className="patent-table">
 								                    <Spin spinning={this.state.loading}>
@@ -982,7 +1184,7 @@ const NewService = Form.create()(React.createClass({
 									            </div>
 					                        </div>}
 						               		<div className='addSave' style={{marginTop:'15px'}}>
-							                    {!this.props.userDetaile||orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2?<Button className="setSave" type="primary" htmlType="submit">保存</Button>:''}
+							                    {!this.props.userDetaile||orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2||orderDetaiel.changeStatus==1?<Button className="setSave" type="primary" htmlType="submit">保存</Button>:''}
 				                                {this.props.userDetaile?<div className='operations'>
 						                            {this.props.datauser.active.confirmIntention&&<Popconfirm title={'请确认您是否受理来自【'+this.props.datauser.buyerName+'】发起的服务意向订单?'} onConfirm={(e)=>{this.admissibleOrderOK()}} onCancel={(e)=>{this.admissibleOrderCancel()}} okText="同意" cancelText="拒绝">
 													    <Button style={{marginRight:'15px',marginLeft:'200px'}} type="primary">受理意向</Button>                 
@@ -1265,6 +1467,120 @@ const NewService = Form.create()(React.createClass({
 			                </Spin>
 			            </Form >
 			        </Modal>
+			        <Modal maskClosable={false} visible={this.state.addChangeState}
+                        onOk={this.addChangeCancel} onCancel={this.addChangeCancel}
+                        width='800px'
+                        title= {this.state.stateAdd?'添加变更':'查看变更记录'}                    
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+                        	   		{this.state.stateAdd?<div className="clearfix">
+						                <FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									    </FormItem>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.subChangeState} style={{margin:"10px 50px 10px 128px"}}>保存</Button>
+									    	<Button onClick={this.addChangeCancel}>取消</Button>
+									    </div>
+				                    </div>:
+				                    <div>
+				                    	{
+				                    	changeHtml.length?changeHtml.map(function(item,index){
+				                    			return (<div className="changeBorder" key={index}>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更发起人" >                             
+													               <span>{item.creater}</span>
+													    </FormItem>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更申请时间" >                             
+													               <span>{item.createTime}</span>
+													    </FormItem>
+													    <div className='clearfix'>
+													    	<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更状态" >                             
+													                <span>{getChangeState(item.changeStatus)}</span>
+													   		</FormItem>
+													   		<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更操作" >                             
+													               <Button onClick={(e)=>{this.modifyChange(item)}}>修改</Button>
+													               {/*<Button type="danger" onClick={(e)=>{this.modifyDelete(item)}}>删除</Button>*/}
+													   		</FormItem>
+													    </div>
+													    <div className='clearfix changeRemark'>
+													    	<FormItem
+													            labelCol={{ span: 4 }}
+													            wrapperCol={{ span: 16 }}
+													            label="变更说明" >
+													    		<p>{item.changeComment}</p>
+													        </FormItem>
+													    </div>
+													</div>)
+				                    		},this):<p style={{textAlign:"center"}}>暂无变更记录</p>}
+								    </div>
+                        	   		}
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
+			        <Modal maskClosable={false} visible={this.state.modifyChangeState} 
+                        onOk={this.modifyChangeCancel} onCancel={this.modifyChangeCancel}
+                        width='600px'
+                        title= "修改变更  "                 
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+		                       		<div className="clearfix">
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更发起人" >                             
+									               <span>{this.state.changePromoter}</span>
+									    </FormItem>
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更申请时间" >                             
+									               <span>{this.state.changeTime}</span>
+									    </FormItem>
+									    <div className='clearfix'>
+									    	<FormItem 
+					                             labelCol={{ span: 4 }}
+										         wrapperCol={{ span: 16 }}
+					                             label="变更状态" >  
+												<Radio.Group onChange={(e)=>{this.setState({changeState:e.target.value})}} value={this.state.changeState}>
+											        <Radio value={1}>变更中</Radio>
+											        <Radio value={2}>变更完成</Radio>
+											    </Radio.Group>    
+						                	</FormItem>
+									    </div>
+									    <div className='clearfix'>
+									    	<FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									   		</FormItem>
+									    </div>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.changeModify} style={{margin:"10px 95px"}}>保存</Button>
+									    	<Button onClick={this.modifyChangeCancel}>取消</Button>
+									    </div>
+									</div>
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
     	    </div>
 		)
 	}

+ 0 - 5
js/component/manageCenter/order/flowSettlement/billManage/myBillDetaile.jsx

@@ -425,11 +425,6 @@ const MyBillDetaile = Form.create()(React.createClass({
 			                    		</FormItem>
 			                    		<FormItem className="half-item"
 				                            {...formItemLayout}
-				                            label="首付时间" >  
-				                            <span>{seeOrderDetaiel.createTimez}</span>
-			                    		</FormItem>
-			                    		<FormItem className="half-item"
-				                            {...formItemLayout}
 				                            label="项目负责人" >  
 				                            <span>{seeOrderDetaiel.technicianName}</span>
 			                    		</FormItem>

+ 0 - 5
js/component/manageCenter/order/flowSettlement/billManagement/myBillDetaile.jsx

@@ -424,11 +424,6 @@ const MyBillDetaile = Form.create()(React.createClass({
 			                    		</FormItem>
 			                    		<FormItem className="half-item"
 				                            {...formItemLayout}
-				                            label="首付时间" >  
-				                            <span>{seeOrderDetaiel.createTimez}</span>
-			                    		</FormItem>
-			                    		<FormItem className="half-item"
-				                            {...formItemLayout}
 				                            label="项目负责人" >  
 				                            <span>{seeOrderDetaiel.technicianName}</span>
 			                    		</FormItem>

+ 0 - 5
js/component/manageCenter/order/flowSettlement/billQuery/myBillDetaile.jsx

@@ -425,11 +425,6 @@ const MyBillDetaile = Form.create()(React.createClass({
 			                    		</FormItem>
 			                    		<FormItem className="half-item"
 				                            {...formItemLayout}
-				                            label="首付时间" >  
-				                            <span>{seeOrderDetaiel.createTimez}</span>
-			                    		</FormItem>
-			                    		<FormItem className="half-item"
-				                            {...formItemLayout}
 				                            label="项目负责人" >  
 				                            <span>{seeOrderDetaiel.technicianName}</span>
 			                    		</FormItem>

+ 0 - 5
js/component/manageCenter/order/flowSettlement/myBill/myBillDetaile.jsx

@@ -428,11 +428,6 @@ const MyBillDetaile = Form.create()(React.createClass({
 			                    		</FormItem>
 			                    		<FormItem className="half-item"
 				                            {...formItemLayout}
-				                            label="首付时间" >  
-				                            <span>{seeOrderDetaiel.createTimez}</span>
-			                    		</FormItem>
-			                    		<FormItem className="half-item"
-				                            {...formItemLayout}
 				                            label="项目负责人" >  
 				                            <span>{seeOrderDetaiel.technicianName}</span>
 			                    		</FormItem>

+ 337 - 19
js/component/manageCenter/order/myOrder/servicesOrder/addService.jsx

@@ -1,10 +1,10 @@
 import React from 'react';
-import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,DatePicker} from 'antd';
+import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,DatePicker,Radio} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import '../../userMangagement.less';
 import {orderType} from '../../../../dataDic.js';  
-import {splitUrl,getOrderType,getOrderStage,getProjectState,getOrderState,getTransactionProject,getPaymentState,getOrderChannel,getApprovedState,getLock,getPaymentMethod,getTransactionChannel,beforeUploadFile} from '../../../../tools.js';
+import {splitUrl,getOrderType,getOrderStage,getProjectState,getOrderState,getTransactionProject,getChangeState,getPaymentState,getOrderChannel,getApprovedState,getLock,getPaymentMethod,getTransactionChannel,beforeUploadFile} from '../../../../tools.js';
 const Option = AutoComplete.Option;
 //图片组件
 const PicturesWall = React.createClass({
@@ -15,6 +15,11 @@ const PicturesWall = React.createClass({
             fileList: [],
         }
     },
+    getDefaultProps(){
+    	return{
+    		changeClick:this.modifyChange
+    	}
+    },
     handleCancel() {
         this.setState({ previewVisible: false })
     },
@@ -165,7 +170,7 @@ const NewService = Form.create()(React.createClass({
                     dataIndex: 'ABC',
                     key: 'ABC',
                     render: (text, record, index) => {
-						return <div style={{display:this.props.datauser.active.applySign?'block':'none'}}>
+						return <div style={{display:this.props.datauser.active.applySign||this.state.changeStatus==1?'block':'none'}}>
 								<Popconfirm title="是否删除?" onConfirm={(e)=>{this.delectRow(record)}} okText="是" cancelText="否">
 								    <Button onClick={(e) =>{ e.stopPropagation()}} type="danger">删除</Button>                 
 								</Popconfirm>
@@ -324,6 +329,7 @@ const NewService = Form.create()(React.createClass({
                 };
                 this.setState({
 					id:thisData.id,
+					changeStatus:thisData.changeStatus,
 					orderList:thisData,
 					orderAmount:thisData.orderAmount,
 					firstPayment:thisData.firstPayment,
@@ -836,6 +842,168 @@ const NewService = Form.create()(React.createClass({
 			lookVisible:false
 		})
 	},
+	
+	/* -----变更操作开始----- */
+	//新建变更
+	addChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:1,
+			changeRemarks:''
+		})
+	},
+	//产看变更记录
+	lookChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:0
+		})
+		this.lookChangeData()
+	},
+	//查看变更列表修改变更
+	modifyChangeCancel(){
+		this.setState({
+			modifyChangeState:false
+		})
+	},
+	//获取变更记录
+	lookChangeData(){
+		this.setState({
+			loading:true
+		});
+		 $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context +'/api/admin/order/viewOrderChange',
+            data: {
+            	orderNo:this.props.datauser.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        theArr = data.data;
+                    };
+                };
+                this.setState({
+                    changeHtml: theArr,
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+	},
+	//添加变更状态
+	addChangeCancel(){
+		this.setState({
+			addChangeState:false
+		})
+	},
+	//新建变更
+	subChangeState(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/addOrderChange' ,
+			data: {
+				orderNo:this.props.datauser.orderNo,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.addChangeCancel();
+				this.loaduser();
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//查看修改变更
+	modifyChange(item){
+		this.setState({
+			modifyChangeState:true,
+			changePromoter:item.creater,
+			changeTime:item.createTime,
+			changeState:item.changeStatus,
+			changeRemarks:item.changeComment,
+			idt:item.changeId,
+			orderNot:item.orderNo
+		})
+	},
+	//删除变更
+	modifyDelete(item){
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/deleteOrderChange' ,
+			data: {
+				changeId:item.changeId,
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('删除成功!');
+				this.lookChangeData();
+				this.loaduser()
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//修改变更保存
+	changeModify(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/updateOrderChange' ,
+			data: {
+				changeId:this.state.idt,
+				changeStatus:this.state.changeState,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.modifyChangeCancel();
+				this.lookChangeData();
+				this.loaduser()
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	/*-----变更操作结束----*/
+	
 	 //查看流失。项目列表
     lookSee(state) {
     	this.state.lookSource=[];
@@ -894,6 +1062,7 @@ const NewService = Form.create()(React.createClass({
 	    		bussStats:true,
 	    		orderType:e
     		})
+	    	this.category();
     	}else{
     		this.setState({
     			contractType:undefined,
@@ -904,9 +1073,6 @@ const NewService = Form.create()(React.createClass({
     },
     //品类数据获取
     category(){
-    	this.setState({
-			loading: true
-		});
 		$.ajax({
 			method: "get",
 			dataType: "json",
@@ -937,11 +1103,7 @@ const NewService = Form.create()(React.createClass({
 					categoryArr:theArr,
 				})
 			}.bind(this),
-			}).always(function() {
-				this.setState({
-					loading: false
-				});
-			}.bind(this));
+			});
     },
 	componentWillReceiveProps(nextProps) { //props改变时触发
 		this.state.visible = nextProps.showDesc;
@@ -953,14 +1115,13 @@ const NewService = Form.create()(React.createClass({
 			this.loaduser(nextProps.datauser);
 			this.loadData(nextProps.datauser);
 		}else{
-			this.category();
 			this.setState({
 				orderType:undefined,
 				customerName:'',
 				autoId:'',
 				customerArr:[],
 				contractType:undefined,
-				bussStats:false
+				bussStats:false,
 			})
 		}
 	},
@@ -970,14 +1131,15 @@ const NewService = Form.create()(React.createClass({
 			labelCol: { span: 8 },
 			wrapperCol: { span: 14 },
 		};
+		const changeHtml=this.state.changeHtml ||[];
 		const editFws=this.state.editFw;
 		const categoryList=this.state.categoryArr ||[];
 		const orderDetaiel=this.state.orderList || [];
 		const dataSources=this.state.customerArr || [];
         const options = this.state.states?dataSources.map((group,index) =>
-				      <Select.Option key={index} value={group.name}>{group.name}</Select.Option>
+				      <Select.Option key={group.id} value={group.name}>{group.name}</Select.Option>
 				     ):dataSources.map((group,index) =>
-				      <Select.Option key={group.id} value={group.bname}>{group.bname}</Select.Option>
+				      <Select.Option key={index} value={group.bname}>{group.bname}</Select.Option>
 				     )
 		    
 		return(
@@ -1101,7 +1263,7 @@ const NewService = Form.create()(React.createClass({
 							                            label="市价首款金额" >   
 							                            <span>{orderDetaiel.firstPayment+'万元'}</span>
 								                    </FormItem>
-								                    {orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2?
+								                    {orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2||orderDetaiel.changeStatus==1?
 							                    	<div className='clearfix'>
 									                    <FormItem className="half-item"
 								                            {...formItemLayout}
@@ -1146,6 +1308,28 @@ const NewService = Form.create()(React.createClass({
 														    				onChange={(e)=>{this.setState({orderRemarks:e.target.value})}}/>			                      
 													        </FormItem>
 												        </div>
+												        <div className='clearfix'>
+												        	<div className="changeStatusTxt">
+													        	<FormItem className="half-item"
+														            {...formItemLayout}
+														            style={{color:'red'}}
+														            label="变更状态" >
+													        		<span>{getChangeState(orderDetaiel.changeStatus)}</span>
+														        </FormItem>
+													        </div>
+													        {orderDetaiel.orderStatus>=3&&<div className="clearfix">
+													        	<FormItem className="half-item"
+													            	{...formItemLayout}
+													           		label="变更操作" >
+												        			<Button onClick={this.addChange}>添加变更</Button>
+													        	</FormItem>
+													        	<FormItem className="half-item"
+													            	{...formItemLayout}
+													           		label="变更操作" >
+												        			<Button onClick={this.lookChange}>查看变更纪录</Button>
+													        	</FormItem>
+												            </div>}
+												        </div>
 											        </div>:
 											        <div className='clearfix'>
 											        	<FormItem className="half-item"
@@ -1199,6 +1383,26 @@ const NewService = Form.create()(React.createClass({
 												        		<span>{orderDetaiel.orderRemarks}</span>
 													        </FormItem>
 												        </div>
+												        <div className='clearfix changeStatusTxt'>
+												        	<FormItem className="half-item"
+													            {...formItemLayout}
+													            style={{color:'red'}}
+													            label="变更状态" >
+												        		<span>{getChangeState(orderDetaiel.changeStatus)}</span>
+													        </FormItem>
+												        </div>
+												        {orderDetaiel.orderStatus>=3&&<div className="clearfix">
+												        	<FormItem className="half-item"
+												            	{...formItemLayout}
+												           		label="变更操作" >
+											        			<Button onClick={this.addChange}>添加变更</Button>
+												        	</FormItem>
+												        	<FormItem className="half-item"
+												            	{...formItemLayout}
+												           		label="变更操作" >
+											        			<Button onClick={this.lookChange}>查看变更纪录</Button>
+												        	</FormItem>
+												        </div>}
 											        </div>}
 										        <div className='clearfix'>
 						                    		<FormItem className="half-item"
@@ -1247,7 +1451,7 @@ const NewService = Form.create()(React.createClass({
 					                    		</div>
 					                    		<div>
 								                	<span style={{marginLeft:'50px',fontSize:'20px'}}>项目业务</span>
-								                	{this.props.datauser.active.applySign?<Button type='primary' onClick={this.addDetailed} style={{float:'right',marginRight:'50px',marginBottom:'15px',display:true?'block':'none'}}>添加明细</Button>:''}
+								                	{this.props.datauser.active.applySign||orderDetaiel.changeStatus==1?<Button type='primary' onClick={this.addDetailed} style={{float:'right',marginRight:'50px',marginBottom:'15px'}}>添加明细</Button>:''}
 								                </div>
 								                <div className="patent-table">
 								                    <Spin spinning={this.state.loading}>
@@ -1260,7 +1464,7 @@ const NewService = Form.create()(React.createClass({
 									            </div>
 					                        </div>}
 						               		<div className='addSave' style={{marginTop:'15px'}}>
-							                    {!this.props.userDetaile||orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2?<Button className="setSave" type="primary" htmlType="submit">保存</Button>:''}
+							                    {!this.props.userDetaile||orderDetaiel.deleteSign==0&&orderDetaiel.orderStatus==2||orderDetaiel.changeStatus==1?<Button className="setSave" type="primary" htmlType="submit">保存</Button>:''}
 				                                {this.props.userDetaile?<div className='operations'>
 						                            {this.props.datauser.active.confirmIntention&&<Popconfirm title={'请确认您是否受理来自【'+this.props.datauser.buyerName+'】发起的服务意向订单?'} onConfirm={(e)=>{this.admissibleOrderOK()}} onCancel={(e)=>{this.admissibleOrderCancel()}} okText="同意" cancelText="拒绝">
 													    <Button style={{marginRight:'15px',marginLeft:'200px'}} type="primary">受理意向</Button>                 
@@ -1288,7 +1492,7 @@ const NewService = Form.create()(React.createClass({
 			        <Modal maskClosable={false} visible={this.state.addnextVisible}
                         onOk={this.nextCancel} onCancel={this.nextCancel}
                         width='800px'
-                        title={this.state.addState?'添加服务':'编辑服务'}                     
+                        title={this.state.addState?'添加服务':'服务详情'}                     
                         footer=''
                         className="admin-desc-content">
 			            <Form layout="horizontal" onSubmit={this.nextSubmit} id="demand-form">
@@ -1562,6 +1766,120 @@ const NewService = Form.create()(React.createClass({
 			                </Spin>
 			            </Form >
 			        </Modal>
+			        <Modal maskClosable={false} visible={this.state.addChangeState}
+                        onOk={this.addChangeCancel} onCancel={this.addChangeCancel}
+                        width='800px'
+                        title= {this.state.stateAdd?'添加变更':'查看变更记录'}                    
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+                        	   		{this.state.stateAdd?<div className="clearfix">
+						                <FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									    </FormItem>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.subChangeState} style={{margin:"10px 50px 10px 128px"}}>保存</Button>
+									    	<Button onClick={this.addChangeCancel}>取消</Button>
+									   </div>
+				                    </div>:
+				                    <div>
+				                    	{
+				                    	changeHtml.length?changeHtml.map(function(item,index){
+				                    			return (<div className="changeBorder" key={index}>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更发起人" >                             
+													               <span>{item.creater}</span>
+													    </FormItem>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更申请时间" >                             
+													               <span>{item.createTime}</span>
+													    </FormItem>
+													    <div className='clearfix'>
+													    	<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更状态" >                             
+													                <span>{getChangeState(item.changeStatus)}</span>
+													   		</FormItem>
+													   		<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更操作" >                             
+													            <Button onClick={(e)=>{this.modifyChange(item)}}>修改</Button>
+													   			{/*<Button type="danger" onClick={(e)=>{this.modifyDelete(item)}}>删除</Button>*/}
+													   		</FormItem>
+													    </div>
+													    <div className='clearfix changeRemark'>
+													    	<FormItem
+													            labelCol={{ span: 4 }}
+													            wrapperCol={{ span: 16 }}
+													            label="变更说明" >
+													    		<p>{item.changeComment}</p>
+													        </FormItem>
+													    </div>
+													</div>)
+				                    		},this):<p style={{textAlign:"center"}}>暂无变更记录</p>}
+								    </div>
+                        	   		}
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
+			        <Modal maskClosable={false} visible={this.state.modifyChangeState} 
+                        onOk={this.modifyChangeCancel} onCancel={this.modifyChangeCancel}
+                        width='600px'
+                        title= "修改变更  "                 
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+		                       		<div className="clearfix">
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更发起人" >                             
+									               <span>{this.state.changePromoter}</span>
+									    </FormItem>
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更申请时间" >                             
+									               <span>{this.state.changeTime}</span>
+									    </FormItem>
+									    <div className='clearfix'>
+									    	<FormItem 
+					                             labelCol={{ span: 4 }}
+										         wrapperCol={{ span: 16 }}
+					                             label="变更状态" >  
+												<Radio.Group onChange={(e)=>{this.setState({changeState:e.target.value})}} value={this.state.changeState}>
+											        <Radio value={1}>变更中</Radio>
+											        <Radio value={2}>变更完成</Radio>
+											    </Radio.Group>    
+						                	</FormItem>
+									    </div>
+									    <div className='clearfix'>
+									    	<FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									   		</FormItem>
+									    </div>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.changeModify} style={{margin:"10px 95px"}}>保存</Button>
+									    	<Button onClick={this.modifyChangeCancel}>取消</Button>
+									    </div>
+									</div>
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
     	    </div>
 		)
 	}

+ 6 - 0
js/component/manageCenter/order/myOrder/servicesOrder/myService.jsx

@@ -296,6 +296,11 @@ const MyService=Form.create()(React.createClass({
     },
     componentWillMount() {
         this.loadData();
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		this.tableRowClick(newData);
+    	};
     },
     tableRowClick(record, index) {
     	this.state.userDetaile=true;
@@ -305,6 +310,7 @@ const MyService=Form.create()(React.createClass({
         	signBillState:true,
             showDesc: true
         });
+    	localStorage.setItem('newData','{}');
     },
     //列表各种骚操作
     operation(record,index) {

+ 34 - 12
js/component/manageCenter/order/settlementOrder/mySettlement/mySettlement.jsx

@@ -9,6 +9,8 @@ import moment from 'moment';
 import '../../userMangagement.less';
 import {paymentState ,orderChannel,orderState} from '../../../../dataDic.js';
 import {getProjectState,getOrderChannel,getOrderType,getOrderState,getPaymentState,getApprovedState} from '../../../../tools.js';
+import {setUserContactsList} from '../../../publicMenu.js'
+
 
 const MySettlement=Form.create()(React.createClass({
 	loadData(pageNo,depart) {
@@ -205,10 +207,10 @@ const MySettlement=Form.create()(React.createClass({
                     key: 'zhifu',
                     render:(text,record)=>{
 						return 	<div>
-									<Button onClick={(e) =>{ e.stopPropagation(),this.paymentMoney(record)}} type="dashed">支付</Button>
-							    	<Button style={{marginLeft:'5px',}} onClick={(e) =>{ e.stopPropagation(),this.confirmDelet(record)}} type="primary">转交</Button>               
+									{record.liquidationStatus<2&&<Button onClick={(e) =>{ e.stopPropagation(),this.paymentMoney(record)}} type="dashed">支付</Button>}
+							    	<Button style={{margin:'0 5px'}} onClick={(e) =>{ e.stopPropagation(),this.confirmDelet(record)}} type="primary">转交</Button>               
+									{record.liquidationStatus==4&&<Button onClick={(e) =>{ e.stopPropagation(),this.refundMoney(record)}} type="danger">退款</Button>}
 								</div>
-                    			
                     }
                 }
             ],
@@ -250,12 +252,22 @@ const MySettlement=Form.create()(React.createClass({
         };
     },
     //测试用支付
-     //支付
+    //支付
     paymentMoney(record){
     	this.setState({
     		kid:record.orderNo,
     		payment:'',
-    		paymentVisible:true
+    		paymentVisible:true,
+    		paymentMoneyState:true
+    	})
+    },
+    //退款
+    refundMoney(record){
+    	this.setState({
+    		kid:record.orderNo,
+    		payment:'',
+    		paymentVisible:true,
+    		paymentMoneyState:false
     	})
     },
     paymentCancel(){
@@ -266,7 +278,7 @@ const MySettlement=Form.create()(React.createClass({
     //支付保存
     payment(){
     	if(!this.state.payment){
-    		message.warning('请输入支付金额!');
+    		message.warning('请输入金额!');
     		return;
     	};
     	this.setState({
@@ -274,18 +286,22 @@ const MySettlement=Form.create()(React.createClass({
             loading: true,
             showDesc:false
         });
+        let api = this.state.paymentMoneyState?'/api/admin/order/testPay':'/api/admin/order/testRefund';
         $.ajax({
             method: "POST",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + '/api/admin/order/testPay',
-            data: {
+            url: globalConfig.context + api,
+            data: this.state.paymentMoneyState?{
             	orderNo:this.state.kid,
             	payAmount:this.state.payment
+            }:{
+            	orderNo:this.state.kid,
+            	refundAmount:this.state.payment
             }
         }).done(function (data) {
             if (!data.error.length) {
-                message.success('支付成功!');
+                message.success(this.state.paymentMoneyState?'支付成功!':'退款成功!');
                 this.paymentCancel();
                 this.loadData(this.state.pageNo);
                 this.setState({
@@ -298,6 +314,11 @@ const MySettlement=Form.create()(React.createClass({
     },
     componentWillMount() {
         this.departmentList();
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		this.tableRowClick(newData);
+    	};
     },
     tableRowClick(record, index) {
     	this.state.userDetaile=true;
@@ -305,6 +326,7 @@ const MySettlement=Form.create()(React.createClass({
         this.setState({
             showDesc: true
         });
+        
     },
     closeDesc(e, s) {
     	this.state.userDetaile=false;
@@ -539,7 +561,7 @@ const MySettlement=Form.create()(React.createClass({
 	            <Modal maskClosable={false} visible={this.state.paymentVisible}
                         onOk={this.paymentCancel} onCancel={this.paymentCancel}
                         width='600px'
-                        title='支付详情'                     
+                        title= {this.state.paymentMoneyState?'支付详情':'退款详情'}                    
                         footer=''
                         className="admin-desc-content">
 			            <Form layout="horizontal" id="demand-form">
@@ -548,11 +570,11 @@ const MySettlement=Form.create()(React.createClass({
 	                        	    <Form.Item className="half-middle"
 	                        	    	labelCol={{ span: 8 }}
 										wrapperCol={{ span: 14 }}
-			                            label="支付金额(万元)" >
+			                            label={this.state.paymentMoneyState?"支付金额(万元)":'退款金额'} >
 		                    			<Input value={this.state.payment} onChange={(e)=>{this.setState({payment:e.target.value})}} style={{width:'150px'}} />
 		                    			<span className="mandatory">*</span>
 			                    	</Form.Item>
-			                    	<Button type="primary" onClick={this.payment} style={{marginRight:'20px',marginLeft:'210px'}}>支付</Button>
+			                    	<Button type="primary" onClick={this.payment} style={{marginRight:'20px',marginLeft:'210px'}}>{this.state.paymentMoneyState?'支付':'退款'}</Button>
 			                    	<Button onClick={this.paymentCancel}>取消</Button>
 		                        </div>
 			                </Spin>

+ 300 - 8
js/component/manageCenter/order/settlementOrder/mySettlement/mySettlementDetaile.jsx

@@ -1,9 +1,9 @@
 import React from 'react';
-import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete} from 'antd';
+import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,Radio} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import '../../userMangagement.less';
-import {getApprovedState,getPaymentState,getOrderState,getProjectState,getOrderChannel,getOrderType,getTransactionProject,getTransactionChannel} from '../../../../tools.js';
+import {getApprovedState,getPaymentState,getOrderState,getProjectState,getOrderChannel,getChangeState,getOrderType,getTransactionProject,getTransactionChannel} from '../../../../tools.js';
 
 const MySettlementDetaile = Form.create()(React.createClass({
 	loadData(record) {
@@ -313,6 +313,166 @@ const MySettlementDetaile = Form.create()(React.createClass({
         	addnextVisible:true,
         });
     },
+    /* -----变更操作开始----- */
+	//新建变更
+	addChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:1,
+			changeRemarks:''
+		})
+	},
+	//产看变更记录
+	lookChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:0
+		})
+		this.lookChangeData()
+	},
+	//查看变更列表修改变更
+	modifyChangeCancel(){
+		this.setState({
+			modifyChangeState:false
+		})
+	},
+	//获取变更记录
+	lookChangeData(){
+		this.setState({
+			loading:true
+		});
+		 $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context +'/api/admin/order/viewOrderChange',
+            data: {
+            	orderNo:this.props.datauser.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        theArr = data.data;
+                    };
+                };
+                this.setState({
+                    changeHtml: theArr,
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+	},
+	//添加变更状态
+	addChangeCancel(){
+		this.setState({
+			addChangeState:false
+		})
+	},
+	//新建变更
+	subChangeState(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/addOrderChange' ,
+			data: {
+				orderNo:this.props.datauser.orderNo,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.addChangeCancel();
+				this.loaduser(this.props.datauser);
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//查看修改变更
+	modifyChange(item){
+		this.setState({
+			modifyChangeState:true,
+			changePromoter:item.creater,
+			changeTime:item.createTime,
+			changeState:item.changeStatus,
+			changeRemarks:item.changeComment,
+			idt:item.changeId,
+			orderNot:item.orderNo
+		})
+	},
+	//删除变更
+	modifyDelete(item){
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/deleteOrderChange' ,
+			data: {
+				changeId:item.changeId,
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('删除成功!');
+				this.lookChangeData();
+				this.loaduser()
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//修改变更保存
+	changeModify(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/updateOrderChange' ,
+			data: {
+				changeId:this.state.idt,
+				changeStatus:this.state.changeState,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.modifyChangeCancel();
+				this.lookChangeData();
+				this.loaduser(this.props.datauser)
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	/*-----变更操作结束----*/
 	componentWillReceiveProps(nextProps) { //props改变时触发
 		this.state.visible = nextProps.showDesc;
 		if(nextProps.userDetaile && nextProps.showDesc ) {
@@ -326,6 +486,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			labelCol: { span: 8 },
 			wrapperCol: { span: 14 },
 		};
+		const changeHtml=this.state.changeHtml ||[];
 		const editFws=this.state.editFw || [];
 		const orderDetaiel=this.state.orderList || [];
 		return(
@@ -409,7 +570,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				                    		<FormItem className="half-item"
 					                            {...formItemLayout}
 					                            label="合同编号" >
-							                    <Input placeholder="实签订单金额" value={this.state.contractNo} onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'240px'}} />
+							                    <Input placeholder="请输入合同编号" value={this.state.contractNo} onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'240px'}} />
 				                    		</FormItem>
 					                        <div className='clearfix'>
 									        	<FormItem
@@ -419,6 +580,28 @@ const MySettlementDetaile = Form.create()(React.createClass({
 									        		<span>{orderDetaiel.orderRemarks}</span>
 										        </FormItem>
 									        </div>
+									        <div className='clearfix'>
+									        	<div className="changeStatusTxt">
+										        	<FormItem className="half-item"
+											            {...formItemLayout}
+											            style={{color:'red'}}
+											            label="变更状态" >
+										        		<span>{getChangeState(orderDetaiel.changeStatus)}</span>
+											        </FormItem>
+										        </div>
+										        <div className="clearfix">
+										        	<FormItem className="half-item"
+										            	{...formItemLayout}
+										           		label="变更操作" >
+									        			<Button onClick={this.addChange}>添加变更</Button>
+										        	</FormItem>
+										        	<FormItem className="half-item"
+										            	{...formItemLayout}
+										           		label="变更操作" >
+									        			<Button onClick={this.lookChange}>查看变更纪录</Button>
+										        	</FormItem>
+									            </div>
+									        </div>
 								        </div>
 			                        </div>
 			                        <div className='clearfix'>
@@ -452,11 +635,6 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                    		</FormItem>
 			                    		<FormItem className="half-item"
 				                            {...formItemLayout}
-				                            label="首付时间" >  
-				                            <span>{orderDetaiel.createTimez}</span>
-			                    		</FormItem>
-			                    		<FormItem className="half-item"
-				                            {...formItemLayout}
 				                            label="项目负责人" >  
 				                            <span>{orderDetaiel.technicianName}</span>
 			                    		</FormItem>
@@ -559,6 +737,120 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                </Spin>
 			            </Form >
 			        </Modal>
+			        <Modal maskClosable={false} visible={this.state.addChangeState}
+                        onOk={this.addChangeCancel} onCancel={this.addChangeCancel}
+                        width='800px'
+                        title= {this.state.stateAdd?'添加变更':'查看变更记录'}                    
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+                        	   		{this.state.stateAdd?<div className="clearfix">
+						                <FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									    </FormItem>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.subChangeState} style={{margin:"10px 50px 10px 128px"}}>保存</Button>
+									    	<Button onClick={this.addChangeCancel}>取消</Button>
+									    </div>
+				                    </div>:
+				                    <div>
+				                    	{
+				                    	changeHtml.length?changeHtml.map(function(item,index){
+				                    			return (<div className="changeBorder" key={index}>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更发起人" >                             
+													               <span>{item.creater}</span>
+													    </FormItem>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更申请时间" >                             
+													               <span>{item.createTime}</span>
+													    </FormItem>
+													    <div className='clearfix'>
+													    	<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更状态" >                             
+													                <span>{getChangeState(item.changeStatus)}</span>
+													   		</FormItem>
+													   		<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更操作" >                             
+													               <Button onClick={(e)=>{this.modifyChange(item)}}>修改</Button>
+													   			   {/*<Button type="danger" onClick={(e)=>{this.modifyDelete(item)}}>删除</Button>*/}
+													   		</FormItem>
+													    </div>
+													    <div className='clearfix changeRemark'>
+													    	<FormItem
+													            labelCol={{ span: 4 }}
+													            wrapperCol={{ span: 16 }}
+													            label="变更说明" >
+													    		<p>{item.changeComment}</p>
+													        </FormItem>
+													    </div>
+													</div>)
+				                    		},this):<p style={{textAlign:"center"}}>暂无变更记录</p>}
+								    </div>
+                        	   		}
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
+			        <Modal maskClosable={false} visible={this.state.modifyChangeState} 
+                        onOk={this.modifyChangeCancel} onCancel={this.modifyChangeCancel}
+                        width='600px'
+                        title= "修改变更  "                 
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+		                       		<div className="clearfix">
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更发起人" >                             
+									               <span>{this.state.changePromoter}</span>
+									    </FormItem>
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更申请时间" >                             
+									               <span>{this.state.changeTime}</span>
+									    </FormItem>
+									    <div className='clearfix'>
+									    	<FormItem 
+					                             labelCol={{ span: 4 }}
+										         wrapperCol={{ span: 16 }}
+					                             label="变更状态" >  
+												<Radio.Group onChange={(e)=>{this.setState({changeState:e.target.value})}} value={this.state.changeState}>
+											        <Radio value={1}>变更中</Radio>
+											        <Radio value={2}>变更完成</Radio>
+											    </Radio.Group>    
+						                	</FormItem>
+									    </div>
+									    <div className='clearfix'>
+									    	<FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									   		</FormItem>
+									    </div>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.changeModify} style={{margin:"10px 95px"}}>保存</Button>
+									    	<Button onClick={this.modifyChangeCancel}>取消</Button>
+									    </div>
+									</div>
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
     	    </div>
 		)
 	}

+ 14 - 0
js/component/manageCenter/order/userMangagement.less

@@ -82,3 +82,17 @@
 .btnSave{text-align: center;margin-top: 10px;overflow: hidden;}
 .ant-calendar-picker{vertical-align: top;margin-top: 11px;}
 .ant-calendar-picker-input{height: 27px;}
+/*变更说明*/
+.changeBorder .half-item{
+    margin-bottom: 0;
+}
+.changeRemark {
+    border-bottom: 1px solid #ccc;
+}
+.changeRemark div{
+     margin-bottom: 0px;
+}
+.changeStatusTxt label{
+    color: red;
+}
+

+ 2 - 3
js/component/manageCenter/publicMenu.jsx

@@ -1,9 +1,9 @@
 import ajax from 'jquery/src/ajax/xhr.js'
 import $ from 'jquery/src/ajax';
 
-var menuArr=[];
 module.exports={
 	getMenu:function(index){
+		var menuArr=[];
 		$.ajax({
     		method: "get",
             dataType: "json",
@@ -21,10 +21,9 @@ module.exports={
 	                };
 	            };
 	            menuArr=data.data;
-	            return menuArr;
 			}
 		})
 		return menuArr;
-	}	
+	},
 }
 	

+ 1 - 1
js/component/manageCenter/servicesManage/leftTab.jsx

@@ -3,7 +3,7 @@ import { Menu, Icon } from 'antd';
 import '../leftTab.less';
 const SubMenu = Menu.SubMenu;
 const MenuItemGroup = Menu.ItemGroup;
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 const LeftTab = React.createClass({
     getInitialState() {

+ 1 - 1
js/component/manageCenter/servicesManage/projectOrder/myTask/projectManage.jsx

@@ -50,7 +50,7 @@ const MyTask=Form.create()(React.createClass({
 	                         deleteSign:thisdata.deletedSign,
 	                         taskStatus:thisdata.taskStatus,
 	                         taskReceiverName:thisdata.taskReceiverName,
-	                         projectNo:thisdata.projectNo
+	                         projectNo:thisdata.projectNo,
                         });
                     };
                     this.state.pagination.current = data.data.pageNo;

+ 148 - 2
js/component/manageCenter/servicesManage/projectOrder/myTask/projectManageDetaile.jsx

@@ -4,7 +4,7 @@ import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import '../userMangagement.less';
 import {orderType} from '../../../../dataDic.js';
-import {getOrderType,getProjectState,getTaskStatus} from '../../../../tools.js';
+import {getOrderType,getProjectState,getTaskStatus,getOrderChannel,getOrderState,getPaymentState,getApprovedState} from '../../../../tools.js';
 
 const MySettlementDetaile = Form.create()(React.createClass({
 	getInitialState() {
@@ -34,7 +34,8 @@ const MySettlementDetaile = Form.create()(React.createClass({
 	                    thisData = {};
 	                };
 	                this.setState({
-						orderList:thisData,
+	                	orderNo:thisData.orderNo,
+						orderList:thisData
 	                });                  
 	            }.bind(this),
 	       }).always(function () {
@@ -44,6 +45,47 @@ const MySettlementDetaile = Form.create()(React.createClass({
 	        }.bind(this));  
 	    }
     },
+    //查看订单
+	seeOrder(){
+		this.setState({
+			seeOrderVisible:true
+		})
+		this.seeOrderList();
+	},
+	seeOrderCancel(){
+		this.setState({
+			seeOrderVisible:false
+		})	
+	},
+	seeOrderList(){
+		this.state.lookOrderList=[];
+    	$.ajax({
+            method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + '/api/admin/order/getServiceOrderDetail',
+            data: {
+              orderNo: this.state.orderNo
+            },
+            success: function (data) {
+                let thisData = data.data;                
+                if (!thisData) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                    thisData = {};
+                };
+                this.setState({
+					id:thisData.id,
+					lookOrderList:thisData,
+                });
+            }.bind(this),
+       }).always(function () {
+            this.setState({            	
+                loading: false
+            });
+        }.bind(this));  
+	},
 	componentWillMount() {
 		
 	},
@@ -64,6 +106,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			labelCol: { span: 8 },
 			wrapperCol: { span: 14 },
 		};
+		const seeOrderDetaiel=this.state.lookOrderList || [];
 		const orderDetaiel=this.state.orderList || [];
 		return(
 			<div>
@@ -81,6 +124,12 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				                            label="客户名称" >
 			                    			<span>{orderDetaiel.buyerName}</span>
 			                    	</FormItem>
+			                    	<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单编号" >
+			                    			<span>{orderDetaiel.orderNo}</span>
+				                        {/*<Button style={{float:'right'}} onClick={this.seeOrder}>查看订单</Button>*/}
+			                    	</FormItem>
 		                        	<FormItem className="half-item"
 				                            {...formItemLayout}
 				                            label="项目编号" >
@@ -135,6 +184,103 @@ const MySettlementDetaile = Form.create()(React.createClass({
 		                </Spin>
 		            </Form >
 		        </Modal>
+		        <Modal maskClosable={false} visible={this.state.seeOrderVisible}
+                        onOk={this.seeOrderCancel} onCancel={this.seeOrderCancel}
+                        width='1000px'
+                        title= '查看订单'                 
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+	                        	  	<div className="clearfix">
+			                       		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单编号" >
+				                            <span>{seeOrderDetaiel.orderNo}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="下单时间" >  
+				                            <span>{seeOrderDetaiel.createTime}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="客户名称" >  
+				                            <span>{seeOrderDetaiel.buyerName}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单类型" >  
+				                            <span>{getOrderType(seeOrderDetaiel.orderType)}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单渠道" >  
+				                            <span>{getOrderChannel(seeOrderDetaiel.orderChannel)}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单状态" >  
+				                            <span>{getOrderState(seeOrderDetaiel.orderStatus)}</span>
+			                    		</FormItem>
+					                    <div className='clearfix'>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="特批立项" >   
+					                            <span>{getApprovedState(seeOrderDetaiel.approval)}</span>
+				                    		</FormItem>
+					                        <div className='clearfix'>
+									        	<FormItem
+										            labelCol={{ span: 4 }}
+										            wrapperCol={{ span: 16 }}
+										            label="订单留言" >
+									        		<span>{seeOrderDetaiel.orderRemarks}</span>
+										        </FormItem>
+									        </div>
+								        </div>
+			                        </div>
+			                        <div className='clearfix'>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单负责人" >  
+				                            <span>{seeOrderDetaiel.salesmanName}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="意向时间" >  
+				                            <span>{seeOrderDetaiel.createTime}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="签单时间" >  
+				                            <span>{seeOrderDetaiel.signTime}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="财务负责人" >  
+				                            <span>{seeOrderDetaiel.financeName}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="项目负责人" >  
+				                            <span>{seeOrderDetaiel.technicianName}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="立项时间" >  
+				                            <span>{seeOrderDetaiel.setUpTime}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="项目状态" >  
+				                            <span>{getProjectState(seeOrderDetaiel.projectStage)}</span>
+						                </FormItem>
+		                    		</div>
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
     	    </div>
 		)
 	}

+ 48 - 11
js/component/manageCenter/servicesManage/projectOrder/projectManagement/projectManage.jsx

@@ -6,8 +6,8 @@ import { Form,Radio, Icon, Button, Input, Select, Spin, Table, Switch, message,
 import MySettlementDetaile from "./projectManageDetaile.jsx";
 import moment from 'moment';
 import '../userMangagement.less';
-import {projectState,orderState} from '../../../../dataDic.js';
-import {getProjectState,getOrderState,getOrderType,getPaymentState,getApprovedState} from '../../../../tools.js';
+import {projectState,orderState,distributeState} from '../../../../dataDic.js';
+import {getProjectState,getOrderState,getOrderType,getPaymentState,getApprovedState,getDistributeState} from '../../../../tools.js';
 
 const ProjectOrder=Form.create()(React.createClass({
 	loadData(pageNo) {
@@ -34,7 +34,8 @@ const ProjectOrder=Form.create()(React.createClass({
                 orderNo:this.state.orderNoSearch,//订单编号
                 deletedSign:this.state.deleteSignSearch,//锁定激活
                 serialNumber:this.state.serialNumberSearch,//项目编号
-                principalName:this.state.principalNameSearch
+                principalName:this.state.principalNameSearch,
+                taskDistribution:this.state.distributeSearch
             },
             success: function (data) {
                 let theArr = [];
@@ -62,7 +63,8 @@ const ProjectOrder=Form.create()(React.createClass({
 	                         buyerType:thisdata.buyerType,
 	                         salesmanName:thisdata.salesmanName,
 	                         departmentName:thisdata.departmentName,
-	                         principalName:thisdata.principalName
+	                         principalName:thisdata.principalName,
+	                         taskDistribution:thisdata.taskDistribution
                         });
                     };
                     this.state.pagination.current = data.data.pageNo;
@@ -126,7 +128,10 @@ const ProjectOrder=Form.create()(React.createClass({
                 },{
                     title: '客户名称',
                     dataIndex: 'buyerName',
-                    key: 'buyerName'
+                    key: 'buyerName',
+                    render:(text)=>{
+                    	return text&&text.length>=6?text.substr(0,5)+'...':text
+                    }
                 },{
                     title: '客户类型',
                     dataIndex: 'buyerProvince',
@@ -177,13 +182,19 @@ const ProjectOrder=Form.create()(React.createClass({
                     key: 'approval',
                      render:(text)=>{return getApprovedState(text) }
                 },{
+                    title: '分派情况',
+                    dataIndex: 'taskDistribution',
+                    key: 'taskDistribution',
+                     render:(text)=>{return getDistributeState(text) }
+                },
+                {
                 	title: '操作',
                     dataIndex: 'rr',
                     key: 'rr',
                     render:(text,record,index)=>{
                     	return (
                     		<div>
-								{record.projectStatus==2||record.projectStatus==5?<Button style={{marginRight:'5px'}} type="primary" onClick={(e) =>{ e.stopPropagation(),this.Knot(record)}}>项目管理</Button>:''}                
+								{record.projectStatus==2||record.projectStatus==5?<Button style={{marginRight:'5px'}} type="primary" onClick={(e) =>{ e.stopPropagation(),this.Knot(record)}}>派单</Button>:''}                
 								{record.projectStatus==2&&<Button style={{marginRight:'5px'}} type="primary" onClick={(e) =>{ e.stopPropagation(),this.Knots(record)}}>结项</Button>}           
 								{record.projectStatus==1||record.projectStatus==5?<Popconfirm title={'您将作废项目【'+record.roleName+'】,系统将自动同步作废项目任务及项目资料单,请确认'} onConfirm={(e)=>{this.scrapOrder(record)}} okText="确认" cancelText="取消">
 							   	   <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} type="danger">作废</Button>                 
@@ -205,7 +216,10 @@ const ProjectOrder=Form.create()(React.createClass({
                 },{
                     title: '客户名称',
                     dataIndex: 'buyerName',
-                    key: 'buyerName'
+                    key: 'buyerName',
+                    render:(text)=>{
+                    	return text&&text.length>=6?text.substr(0,5)+'...':text
+                    }
                 },{
                     title: '客户类型',
                     dataIndex: 'buyerType',
@@ -255,6 +269,11 @@ const ProjectOrder=Form.create()(React.createClass({
                     dataIndex: 'approval',
                     key: 'approval',
                      render:(text)=>{return getApprovedState(text) }
+                },{
+                    title: '分派情况',
+                    dataIndex: 'taskDistribution',
+                    key: 'taskDistribution',
+                     render:(text)=>{return getDistributeState(text) }
                 }
             ],
             dataSource: [],
@@ -386,9 +405,16 @@ const ProjectOrder=Form.create()(React.createClass({
 			}.bind(this));
     },
     componentWillMount() {
+        let data=localStorage.getItem('newData');
+    	if(data!='{}'&&data){
+    		var newData = JSON.parse(data);
+    		this.tableRowClick(newData);
+    	};
+    },
+    componentDidMount(){
+    	this.loadData();
+        this.departmentList();
     	this.category();
-        this.loadData();
-        this.departmentList()
     },
     //项目管理
     Knot(record){
@@ -463,6 +489,7 @@ const ProjectOrder=Form.create()(React.createClass({
         	newProject:false,
             showDesc: true
         });
+        localStorage.setItem('newData','{}');
     },
     reset() {
     	this.state.buyerNameSearch='';
@@ -476,6 +503,7 @@ const ProjectOrder=Form.create()(React.createClass({
 		this.state.orderStatusSearch = undefined;
 		this.state.salesmanNameSearch = '';
 		this.state.orderNoSearch='';
+		this.state.distributeSearch=undefined;
 		this.state.deleteSignSearch=undefined;
         this.loadData();       
     },
@@ -513,7 +541,16 @@ const ProjectOrder=Form.create()(React.createClass({
 	                    <Input placeholder="项目负责人" style={{width:'150px',marginRight:'10px'}}
 		                        value={this.state.principalNameSearch}
 		                        onChange={(e) => { this.setState({ principalNameSearch: e.target.value }); }} /> 
-	                    <span style={{fontSize:'14px',marginRight:'5px'}}>立项时间:</span>    
+	                    <Select placeholder="分派情况" style={{width:'150px',marginLeft:'10px'}}
+	                            value={this.state.distributeSearch}
+	                            onChange={(e) => { this.setState({ distributeSearch: e }) }}>
+	                            {
+	                                distributeState.map(function (item) {
+	                                        return <Select.Option key={item.value} >{item.key}</Select.Option>
+	                                })
+	                            }
+	                    </Select>
+	                    <span style={{fontSize:'14px',marginRight:'5px'}}>立项时间:</span>
 	                    <RangePicker
 		                        value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
 		                        this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
@@ -570,7 +607,7 @@ const ProjectOrder=Form.create()(React.createClass({
 	                    datauser={this.state.datauser}
 	                    showDesc={this.state.showDesc}
 	                    closeDesc={this.closeDesc} />
-	            </div >
+	             </div >
 	             <Modal maskClosable={false} visible={this.state.signBillVisible}
                         onOk={this.noProject} onCancel={this.noProject}
                         width='800px'

+ 549 - 129
js/component/manageCenter/servicesManage/projectOrder/projectManagement/projectManageDetaile.jsx

@@ -1,10 +1,11 @@
 import React from 'react';
-import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete} from 'antd';
+import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,Radio,DatePicker} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import '../userMangagement.less';
 import {orderType} from '../../../../dataDic.js';
-import {getOrderType,getProjectState,getTaskStatus,getOrderChannel,getOrderState,getPaymentState ,getApprovedState} from '../../../../tools.js';
+import {getOrderType,getProjectState,getTaskStatus,getOrderChannel,getOrderState,getPaymentState ,getChangeState,getApprovedState} from '../../../../tools.js';
+import moment from 'moment';
 
 const MySettlementDetaile = Form.create()(React.createClass({
 	loadData(record) {
@@ -60,6 +61,8 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			orderSelect:false,
 			transferState:false,
 			orgCodeUrl:[],
+			lvState:true,
+			lvRadio:0,
 			customerArr:[],
 			checkedKeys: [],
             //派单
@@ -101,7 +104,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
                     key: 'rrtk',
                     render:(text,record,index)=>{
                     	return (
-                    		<div>
+                    		<div style={{display:!this.props.queryProject?'block':'none'}}>
 								{record.taskStatus<=1&&<Popconfirm title={'您将删除项目任务 【'+record.commodityName+'】,系统将自动同步作废项目资料单,请确认!'} onConfirm={(e)=>{this.voidOperation(record)}} okText="确认" cancelText="取消">
 							   	   <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} type="danger">删除</Button>                 
 								</Popconfirm>}
@@ -186,13 +189,6 @@ const MySettlementDetaile = Form.create()(React.createClass({
             ],
 		};
 	},
-	seeOrder(){
-		this.seeOrderAjax();
-		this.setState({
-			seeState:true,
-			orderVisible:true
-		})
-	},
 	seeContract(){
 		this.contract();
 		this.setState({
@@ -234,14 +230,20 @@ const MySettlementDetaile = Form.create()(React.createClass({
         }.bind(this));  
     },
     //查看订单
-	seeOrderAjax(){
+	seeOrderAjax(data){
+		if(!data.orderNo){
+			return false;
+		};
+		this.setState({
+			loading:true
+		});
     	$.ajax({
             method: "get",
 			dataType: "json",
 			crossDomain: false,
 			url: globalConfig.context + '/api/admin/order/getServiceOrderDetail',
             data: {
-              orderNo: this.state.orderNok
+              orderNo:data.orderNo
             },
             success: function (data) {
                 let thisData = data.data;                
@@ -261,6 +263,19 @@ const MySettlementDetaile = Form.create()(React.createClass({
             });
         }.bind(this));  
     },
+    //时间选择
+    selTime(e,index){
+    	this.setState({
+    		completeDate:e,
+    		selTime:index
+    	})
+    },
+    setTime(e,index){
+    	this.setState({
+    		signDate:e,
+    		setTime:index
+    	})
+    },
     //查看详情
     loaduser(record){
     	if(record){
@@ -282,11 +297,19 @@ const MySettlementDetaile = Form.create()(React.createClass({
                     thisData = {};
                 };
                 this.setState({
+                	signTime:thisData.signDate,
+                	completeTime:thisData.completeDate,
+                	signComment:thisData.signComment,
+                	completeComment:thisData.completeComment,
+	                completeDate:thisData.completeDate?moment(thisData.completeDate,'YYYY-MM-DD HH:mm:ss'):undefined,
+	                signDate:thisData.signDate?moment(thisData.signDate,'YYYY-MM-DD HH:mm:ss'):undefined,
                 	buyerId:thisData.uid,
 					id:record.id,
 					orderNok:thisData.orderNo,
 					orderList:thisData,
 					technicianName:thisData.technicianName, //任务负责人
+					selTime:'',
+					setTime:''
                 });                  
             }.bind(this),
        }).always(function () {
@@ -316,6 +339,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
                     loading: false,
                 });
                 this.loadData();
+                this.props.closeDesc(true, true);
             } else {
                 message.warning(data.error[0].message);
             };
@@ -454,8 +478,13 @@ const MySettlementDetaile = Form.create()(React.createClass({
     		userDetaile:false,
     		distributionVisible:true,
     		transferState:false,
+    		lvState:true,
+    		distributionList:[]
     	});
-    	this.resetOrder();
+    	this.state.departmenttList=undefined;
+    	this.state.financeNameSearch='';
+    	this.state.lvRadio=0;
+    	this.contactList();
     },
     distributionCancel(){
     	this.setState({
@@ -469,16 +498,22 @@ const MySettlementDetaile = Form.create()(React.createClass({
     },
     //分配对象列表
     contactList(){
+    	this.setState({
+            loading: true
+        });
+    	let api = this.state.lvRadio==2?'/api/admin/superviser/adminList':'/api/admin/superviser/selectAdminByOrg'
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + '/api/admin/superviser/adminList',
-            data: {
+            url: globalConfig.context + api,
+            data: this.state.lvRadio==2?{
                 pageNo: 1,
                 pageSize: 99,
                 departmentId:this.state.departmenttList,
                 name:this.state.financeNameSearch,
+            }:{
+            	//subOrSame:!this.state.lvRadio?"SUB":"SAME"
             },
             success: function (data) {
                 let theArr = [];
@@ -487,22 +522,37 @@ const MySettlementDetaile = Form.create()(React.createClass({
                         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,
-	                         userNo: thisdata.userNo,
-	                         name:thisdata.name,
-	                         departmentName:thisdata.departmentName,
-	                         departmentId:thisdata.departmentId,
-	                         position:thisdata.position,
-	                         mobile:thisdata.mobile,
-                        });
-                    };
-                  
+                	if(data.data.list){
+                		for (let i = 0; i < data.data.list.length; i++) {
+	                        let thisdata = data.data.list[i];
+	                        theArr.push({
+	                             key: i,
+		                         id: thisdata.id,
+		                         userNo: thisdata.userNo,
+		                         name:thisdata.name,
+		                         departmentName:thisdata.departmentName,
+		                         departmentId:thisdata.departmentId,
+		                         position:thisdata.position,
+		                         mobile:thisdata.mobile,
+	                        });
+                    	};
+                	}else{
+                		for (let i = 0; i < data.data.length; i++) {
+	                        let thisdata = data.data[i];
+	                        theArr.push({
+	                             key: i,
+		                         id: thisdata.id,
+		                         userNo: thisdata.userNo,
+		                         name:thisdata.name,
+		                         departmentName:thisdata.departmentName,
+		                         departmentId:thisdata.departmentId,
+		                         position:thisdata.position,
+		                         mobile:thisdata.mobile,
+	                        });
+                   		};
+                	}
+                    
                 };
-               
                 this.setState({
                     distributionList: theArr,
                 });
@@ -543,6 +593,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
                 });
                 this.distributionOk();
                 this.loadData();
+                this.props.closeDesc(true, true);
             } else {
                 message.warning(data.error[0].message);
             };
@@ -583,9 +634,12 @@ const MySettlementDetaile = Form.create()(React.createClass({
     resetOrder(){
     	this.state.departmenttList=undefined;
     	this.state.financeNameSearch='';
+    	this.state.lvRadio=0;
     	this.setState({
+    		lvState:true,
     		distributionList:[]
     	})
+    	this.contactList();
     },
     //添加任务
     addTask(){
@@ -721,6 +775,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 						message.success('保存成功!');
 						this.nextCancel();
 						this.loadData();
+						this.props.closeDesc(true, true);
 					} else {
 						message.warning(data.error[0].message);
 					}
@@ -760,14 +815,224 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			}
 		}.bind(this));
 	},
+	//保存详情
+	knotSave(){
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + '/api/admin/techproject/updateProject',
+			data: {
+				contractId:this.props.datauser.id,
+				completeComment:this.state.completeComment,
+				signComment:this.state.signComment,
+				signDate:this.state.setTime?this.state.setTime:this.state.signTime,
+				completeDate:this.state.selTime?this.state.selTime:this.state.completeTime  
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.handleOk()
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
 	//负责人转交
 	transfer(){
 		this.setState({
 			distributionVisible:true,
 			transferState:true,
+			lvState:true,
+    		distributionList:[]
 		});
-		this.resetOrder();
+		this.state.departmenttList=undefined;
+    	this.state.financeNameSearch='';
+    	this.state.lvRadio=0;
+		this.contactList();
+	},
+	/* -----变更操作开始----- */
+	//新建变更
+	addChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:1,
+			changeRemarks:''
+		})
+	},
+	//产看变更记录
+	lookChange(){
+		this.setState({
+			addChangeState:true,
+			stateAdd:0
+		})
+		this.lookChangeData()
+	},
+	//查看变更列表修改变更
+	modifyChangeCancel(){
+		this.setState({
+			modifyChangeState:false
+		})
+	},
+	//获取变更记录
+	lookChangeData(){
+		this.setState({
+			loading:true
+		});
+		 $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context +'/api/admin/order/viewOrderChange',
+            data: {
+            	orderNo:this.props.datauser.orderNo,
+            },
+            success: function (data) {
+                let theArr = [];
+                if (!data.data) {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    };
+                } else {
+                    for (let i = 0; i < data.data.length; i++) {
+                        theArr = data.data;
+                    };
+                };
+                this.setState({
+                    changeHtml: theArr,
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+	},
+	//添加变更状态
+	addChangeCancel(){
+		this.setState({
+			addChangeState:false
+		})
+	},
+	//新建变更
+	subChangeState(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/addOrderChange' ,
+			data: {
+				orderNo:this.props.datauser.orderNo,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.addChangeCancel();
+				this.seeOrderAjax(this.props.datauser);
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//查看修改变更
+	modifyChange(item){
+		this.setState({
+			modifyChangeState:true,
+			changePromoter:item.creater,
+			changeTime:item.createTime,
+			changeState:item.changeStatus,
+			changeRemarks:item.changeComment,
+			idt:item.changeId,
+			orderNot:item.orderNo
+		})
 	},
+	//删除变更
+	modifyDelete(item){
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/deleteOrderChange' ,
+			data: {
+				changeId:item.changeId,
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('删除成功!');
+				this.lookChangeData();
+				this.seeOrderAjax(this.props.datauser)
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	//修改变更保存
+	changeModify(e){
+		e.preventDefault();
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "POST",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context +'/api/admin/order/updateOrderChange' ,
+			data: {
+				changeId:this.state.idt,
+				changeStatus:this.state.changeState,
+				changeComment:this.state.changeRemarks
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.modifyChangeCancel();
+				this.lookChangeData();
+				this.seeOrderAjax(this.props.datauser)
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
+	/*-----变更操作结束----*/
+	//派单阶级操作
+	lvRadioFn(e){
+		if(e.target.value==2){
+			this.setState({
+				lvRadio:e.target.value,
+				lvState:false
+			})
+		}else{
+			this.setState({
+				lvRadio:e.target.value,
+				lvState:true
+			})
+		}
+	},
+	
+	
 	tableRowClick(record, index) {
         this.setState({
         	addTaskState:false,
@@ -782,6 +1047,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			if(nextProps.datauser && nextProps.datauser.id ) {
 				this.loaduser(nextProps.datauser);
 				this.loadData(nextProps.datauser);
+				this.seeOrderAjax(nextProps.datauser);
 			}
 		}else{
 			this.setState({
@@ -815,6 +1081,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			   })
 			},
         };
+		const changeHtml=this.state.changeHtml ||[];
         const categoryList=this.props.categoryArr ||[];
         let departmentArr = this.props.departmentArr || [];
         const hasSelected = this.state.selectedRowKey.length > 0;
@@ -837,12 +1104,11 @@ const MySettlementDetaile = Form.create()(React.createClass({
 		            <Form layout="horizontal" id="demand-form" style={{paddingBottom:'40px'}} onSubmit={this.handleSubmit}>
 		                <Spin spinning={this.state.loading}>
 	                        <div className="clearfix">
-	                            <div className="clearfix">
+	                        	<div className="clearfix">
 		                       		<FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="订单编号" >
 			                            <span>{orderDetaiel.orderNo}</span>
-			                            {orderDetaiel.orderNo&&!this.props.queryProject?<Button  onClick={this.seeOrder} style={{float:'right',fontSize:'12px'}}>查看订单</Button>:''}
 		                    		</FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -855,16 +1121,80 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                            <span>{orderDetaiel.buyerName}</span>
 			                            {orderDetaiel.buyerName&&<Button  onClick={this.seeContract} style={{float:'right',fontSize:'12px'}}>查看联系人</Button>}
 		                    		</FormItem>
-		                    		<FormItem className="half-item"
-			                            {...formItemLayout}
-			                            label="客户省份" >  
-			                            <span>{orderDetaiel.buyerProvince}</span>
-		                    		</FormItem>
-		                    		<FormItem className="half-item"
-			                            {...formItemLayout}
-			                            label="项目类型" >  
-			                            <span>{getOrderType(orderDetaiel.projectType)}</span>
-		                    		</FormItem>
+		                    		{orderDetaiel.orderNo&&<div>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="客户省份" >  
+				                            <span>{orderDetaiel.buyerProvince}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="下单时间" >  
+				                            <span>{orderArr.createTime}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单类型" >  
+				                            <span>{getOrderType(orderArr.orderType)}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单渠道" >  
+				                            <span>{getOrderChannel(orderArr.orderChannel)}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="订单状态" >  
+				                            <span>{getOrderState(orderArr.orderStatus)}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="已收款项" >  
+				                            <span>{orderArr.actuallyTotalAmount+'万元'}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="结算状态" >  
+				                            <span>{getPaymentState(orderArr.liquidationStatus)}</span>
+			                    		</FormItem>
+			                    		<FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="市价订单金额" >    
+			                            	<span>{orderArr.orderAmount+'万元'}</span>
+					                    </FormItem>
+					                    <FormItem className="half-item"
+				                            {...formItemLayout}
+				                            label="市价首款金额" >   
+				                            <span>{orderArr.firstPayment+'万元'}</span>
+					                    </FormItem>
+					                    <div className='clearfix'>
+								        	<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="实签订单金额" >   
+					                            <span>{orderArr.signTotalAmount+'万元'}</span>
+				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="实签首款金额" >   
+					                            <span>{orderArr.signFirstPayment+'万元'}</span>
+				                    		</FormItem>
+				                    		<FormItem className="half-item"
+					                            {...formItemLayout}
+					                            label="特批立项" >   
+					                            <span>{getApprovedState(orderArr.approval)}</span>
+				                    		</FormItem>
+					                        <div className='clearfix'>
+									        	<FormItem
+										            labelCol={{ span: 4 }}
+										            wrapperCol={{ span: 16 }}
+										            label="订单留言" >
+									        		<span>{orderArr.orderRemarks}</span>
+										        </FormItem>
+									        </div>
+								        </div>
+							        </div>}
+				                </div>
+	                            <div className="clearfix">
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="项目负责人" >  
@@ -884,7 +1214,15 @@ const MySettlementDetaile = Form.create()(React.createClass({
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="立项时间" >  
-			                            <span>{orderDetaiel.signDate}</span>
+			                            {!this.props.queryProject&&orderDetaiel.projectStatus==2?
+			                            	<DatePicker style={{marginTop:'2px',width:'200px'}}
+										      showTime
+										      format="YYYY-MM-DD HH:mm:ss"
+										      placeholder="选择时间"
+										      value={this.state.signDate}
+										      onChange={(e,time)=>{this.setTime(e,time)}}
+										    />:
+			                            <span>{orderDetaiel.signDate}</span>}
 		                    		</FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -896,15 +1234,24 @@ const MySettlementDetaile = Form.create()(React.createClass({
 								            labelCol={{ span: 4 }}
 								            wrapperCol={{ span: 16 }}
 								            label="立项说明" >
-							        		 <span>{orderDetaiel.signComment}</span>			                      
+							        		{!this.props.queryProject&&orderDetaiel.projectStatus==2?<Input type="textarea" placeholder="请输入立项说明" rows={4}  value={this.state.signComment} 
+													onChange={(e)=>{this.setState({signComment:e.target.value})}}/>:<span>{orderDetaiel.signComment}</span>}		                      
 								        </FormItem>
 							        </div>
 		                        </div>
 		                        <div className='clearfix'>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
-			                            label="结项日期" >  
-			                            <span>{orderDetaiel.completeDate}</span>
+			                            label="结项日期" > 
+			                            {!this.props.queryProject&&orderDetaiel.projectStatus==3?
+			                            	<DatePicker style={{marginTop:'2px',width:'200px'}}
+										      showTime
+										      format="YYYY-MM-DD HH:mm:ss"
+										      placeholder="选择时间"
+										      value={this.state.completeDate}
+										      onChange={(e,time)=>{this.selTime(e,time)}}
+										    />:
+			                            <span>{orderDetaiel.completeDate}</span>}
 		                    		</FormItem>
 		                    	</div>
 		                    	<div className='clearfix'>
@@ -912,7 +1259,10 @@ const MySettlementDetaile = Form.create()(React.createClass({
 								            labelCol={{ span: 4 }}
 								            wrapperCol={{ span: 16 }}
 								            label="结项说明" >
-							        		<span>{orderDetaiel.completeComment}</span>			                      
+							        		{!this.props.queryProject&&orderDetaiel.projectStatus==3?<Input type="textarea" placeholder="请输入立项说明" rows={4}  value={this.state.completeComment} 
+													onChange={(e)=>{this.setState({completeComment:e.target.value})}}/>:
+													<span>{orderDetaiel.completeComment}</span>
+											}
 								        </FormItem>
 							        </div>
 		                    	<div className='clearfix'>
@@ -922,6 +1272,28 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                            <span>{orderDetaiel.deleteSign==1?'作废':'未作废'}</span>
 		                    		</FormItem>
 	                    		</div>
+	                    		{orderDetaiel.orderNo&&<div className='clearfix'>
+						        	<div className="changeStatusTxt">
+							        	<FormItem className="half-item"
+								            {...formItemLayout}
+								            style={{color:'red'}}
+								            label="变更状态" >
+							        		<span>{getChangeState(orderArr.changeStatus)}</span>
+								        </FormItem>
+							        </div>
+							        <div className="clearfix">
+							        	{!this.props.queryProject&&<FormItem className="half-item"
+							            	{...formItemLayout}
+							           		label="变更操作" >
+						        			<Button onClick={this.addChange}>添加变更</Button>
+							        	</FormItem>}
+							        	<FormItem className="half-item"
+							            	{...formItemLayout}
+							           		label="变更操作" >
+						        			<Button onClick={this.lookChange}>查看变更纪录</Button>
+							        	</FormItem>
+						            </div>
+						        </div>}
 				                <div>
 				                	<span style={{marginLeft:'50px',fontSize:'20px'}}>项目任务</span>
 				                	{orderDetaiel.projectStatus<3&&!this.props.queryProject?<Button type='primary' onClick={this.addTask} style={{float:'right',marginRight:'100px'}}>添加任务</Button>:''}
@@ -935,9 +1307,14 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				                            />
 				                    </Spin>
 					            </div>
-					            {!this.props.projectState?<div>
-					            </div>:
+					            {!this.props.projectState?<div style={{marginTop:'30px',paddingLeft:'160px'}}>
+					            	<div style={{display:orderDetaiel.projectStatus==3||orderDetaiel.projectStatus==2&&!this.props.queryProject?'block':'none'}}>
+					            		<Button type="primary" onClick={this.knotSave} style={{margin:'15px'}}>保存</Button>
+					           			<Button type="ghost" onClick={this.handleCancel}>返回</Button>
+					           		</div>
+					           </div>:
 					            <div style={{marginTop:'30px',paddingLeft:'100px'}}>
+					            	{orderDetaiel.projectStatus==3||orderDetaiel.projectStatus==2?<Button type="primary" onClick={this.knotSave} style={{margin:'15px'}}>保存</Button>:''} 
 					            	<Button type="danger" onClick={this.removeItem}>撤项</Button>  
 						            <Button type="primary" onClick={this.Knot} style={{margin:'15px'}}>结项</Button>
 						            <Button type="ghost" onClick={this.handleCancel}>返回</Button>
@@ -1165,7 +1542,11 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			            <Form layout="horizontal"  id="demand-form" style={{paddingBottom:'40px'}} >
 			                <Spin spinning={this.state.loading}>
 			                	<div>
-			                		<Select placeholder="部门"
+			                		<Radio.Group onChange={this.lvRadioFn} value={this.state.lvRadio}>
+								        <Radio value={0}>下级</Radio>
+								        <Radio value={2}>其他</Radio>
+								    </Radio.Group>
+			                		{!this.state.lvState&&<Select placeholder="部门"
 				                            style={{ width: 150 ,marginRight:'10px',marginLeft:'10px'}}
 				                            value={this.state.departmenttList}
 				                            onChange={(e) => { this.setState({ departmenttList: e }) }}>
@@ -1174,10 +1555,10 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                                            return <Select.Option key={item.id} >{item.name}</Select.Option>
 			                                    })
 			                                }
-				                    </Select>
-				                    <Input placeholder={this.state.transferState?"责任人":"咨询师"} style={{width:'150px',marginLeft:'10px'}}
+				                    </Select>}
+				                    {!this.state.lvState&&<Input placeholder={this.state.transferState?"责任人":"咨询师"} style={{width:'150px',marginLeft:'10px'}}
 				                        value={this.state.financeNameSearch}
-				                        onChange={(e) => { this.setState({ financeNameSearch: e.target.value }); }} />  
+				                        onChange={(e) => { this.setState({ financeNameSearch: e.target.value }); }} />}  
 				                    <Button type="primary" onClick={this.searchOrder} style={{marginLeft:'10px',marginRight:'10px'}}>搜索</Button>
 	                    			<Button onClick={this.resetOrder}>重置</Button>
 			                	</div>
@@ -1204,81 +1585,6 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				                    <Spin spinning={this.state.loading}>
 				                        {this.state.seeState?
 				                        	<div className="clearfix">
-					                       		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="订单编号" >
-						                            <span>{orderArr.orderNo}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="下单时间" >  
-						                            <span>{orderArr.createTime}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="客户名称" >  
-						                            <span>{orderArr.buyerName}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="订单类型" >  
-						                            <span>{getOrderType(orderArr.orderType)}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="订单渠道" >  
-						                            <span>{getOrderChannel(orderArr.orderChannel)}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="订单状态" >  
-						                            <span>{getOrderState(orderArr.orderStatus)}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="已收款项" >  
-						                            <span>{orderArr.actuallyTotalAmount+'万元'}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="结算状态" >  
-						                            <span>{getPaymentState(orderArr.liquidationStatus)}</span>
-					                    		</FormItem>
-					                    		<FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="市价订单金额" >    
-					                            	<span>{orderArr.orderAmount+'万元'}</span>
-							                    </FormItem>
-							                    <FormItem className="half-item"
-						                            {...formItemLayout}
-						                            label="市价首款金额" >   
-						                            <span>{orderArr.firstPayment+'万元'}</span>
-							                    </FormItem>
-							                    <div className='clearfix'>
-										        	<FormItem className="half-item"
-							                            {...formItemLayout}
-							                            label="实签订单金额" >   
-							                            <span>{orderArr.signTotalAmount+'万元'}</span>
-						                    		</FormItem>
-						                    		<FormItem className="half-item"
-							                            {...formItemLayout}
-							                            label="实签首款金额" >   
-							                            <span>{orderArr.signFirstPayment+'万元'}</span>
-						                    		</FormItem>
-						                    		<FormItem className="half-item"
-							                            {...formItemLayout}
-							                            label="特批立项" >   
-							                            <span>{getApprovedState(orderArr.approval)}</span>
-						                    		</FormItem>
-							                        <div className='clearfix'>
-											        	<FormItem
-												            labelCol={{ span: 4 }}
-												            wrapperCol={{ span: 16 }}
-												            label="订单留言" >
-											        		<span>{orderArr.orderRemarks}</span>
-												        </FormItem>
-											        </div>
-										        </div>
 				                        	</div>:
 				                             <Table columns={this.state.contractList}
 				                            dataSource={this.state.contractArr}
@@ -1289,6 +1595,120 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                </Spin>
 			            </Form>
 			    </Modal>
+			    <Modal maskClosable={false} visible={this.state.addChangeState}
+                        onOk={this.addChangeCancel} onCancel={this.addChangeCancel}
+                        width='800px'
+                        title= {this.state.stateAdd?'添加变更':'查看变更记录'}                    
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+                        	   		{this.state.stateAdd?<div className="clearfix">
+						                <FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									    </FormItem>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.subChangeState} style={{margin:"10px 50px 10px 128px"}}>保存</Button>
+									    	<Button onClick={this.addChangeCancel}>取消</Button>
+									    </div>
+				                    </div>:
+				                    <div>
+				                    	{
+				                    	changeHtml.length?changeHtml.map(function(item,index){
+				                    			return (<div className="changeBorder" key={index}>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更发起人" >                             
+													               <span>{item.creater}</span>
+													    </FormItem>
+													    <FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更申请时间" >                             
+													               <span>{item.createTime}</span>
+													    </FormItem>
+													    <div className='clearfix'>
+													    	<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更状态" >                             
+													                <span>{getChangeState(item.changeStatus)}</span>
+													   		</FormItem>
+													   		<FormItem className="half-item"
+													            {...formItemLayout}
+													            label="变更操作" >                             
+													               <Button onClick={(e)=>{this.modifyChange(item)}}>修改</Button>
+													   				{/*<Button type="danger" onClick={(e)=>{this.modifyDelete(item)}}>删除</Button>*/}
+													   		</FormItem>
+													    </div>
+													    <div className='clearfix changeRemark'>
+													    	<FormItem
+													            labelCol={{ span: 4 }}
+													            wrapperCol={{ span: 16 }}
+													            label="变更说明" >
+													    		<p>{item.changeComment}</p>
+													        </FormItem>
+													    </div>
+													</div>)
+				                    		},this):<p style={{textAlign:"center"}}>暂无变更记录</p>}
+								    </div>
+                        	   		}
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
+			        <Modal maskClosable={false} visible={this.state.modifyChangeState} 
+                        onOk={this.modifyChangeCancel} onCancel={this.modifyChangeCancel}
+                        width='600px'
+                        title= "修改变更  "                 
+                        footer=''
+                        className="admin-desc-content">
+			            <Form layout="horizontal" id="demand-form">
+			                <Spin spinning={this.state.loading}>
+		                        <div className="clearfix">
+		                       		<div className="clearfix">
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更发起人" >                             
+									               <span>{this.state.changePromoter}</span>
+									    </FormItem>
+									    <FormItem className="half-item"
+									            {...formItemLayout}
+									            label="变更申请时间" >                             
+									               <span>{this.state.changeTime}</span>
+									    </FormItem>
+									    <div className='clearfix'>
+									    	<FormItem 
+					                             labelCol={{ span: 4 }}
+										         wrapperCol={{ span: 16 }}
+					                             label="变更状态" >  
+												<Radio.Group onChange={(e)=>{this.setState({changeState:e.target.value})}} value={this.state.changeState}>
+											        <Radio value={1}>变更中</Radio>
+											        <Radio value={2}>变更完成</Radio>
+											    </Radio.Group>    
+						                	</FormItem>
+									    </div>
+									    <div className='clearfix'>
+									    	<FormItem
+									            labelCol={{ span: 4 }}
+									            wrapperCol={{ span: 16 }}
+									            label="变更说明" >
+								                <Input type="textarea" placeholder="请输入变更说明" rows={4}  value={this.state.changeRemarks} 
+									    				onChange={(e)=>{this.setState({changeRemarks:e.target.value})}}/>			                      
+									   		</FormItem>
+									    </div>
+									    <div className="clearfix">
+									    	<Button type="primary" onClick={this.changeModify} style={{margin:"10px 95px"}}>保存</Button>
+									    	<Button onClick={this.modifyChangeCancel}>取消</Button>
+									    </div>
+									</div>
+		                        </div>
+			                </Spin>
+			            </Form >
+			        </Modal>
     	    </div>
 		)
 	}

+ 1 - 1
js/component/manageCenter/set/content.jsx

@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import '../content.less';
 import './content.less';
 import LeftTab from '../leftTab';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 class Content extends Component {
     constructor() {

+ 25 - 24
js/component/manageCenter/topTab.jsx

@@ -45,30 +45,31 @@ const MessageModal = React.createClass({
                     dataIndex: 'noticeType',
                     key: 'noticeType',
                     render: (text, record) => {
-                        switch (text) {
-                            case 1:
-                                return <a href={globalConfig.context + "/admin/servicesManage/patent.html?rid=" + record.rid + "&uid=" + record.uid + "#comprehensive"}> {record.noticeTypeName} </a>;
-                            case 3:
-                                return <a href={globalConfig.context + "/admin/servicesManage/copyright.html?rid=" + record.rid + "&uid=" + record.uid + "#copyright"}> {record.noticeTypeName} </a>;
-                            case 2:
-                                return <a href={globalConfig.context + "/admin/servicesManage/highTech.html?rid=" + record.rid + "&uid=" + record.uid + "&year=" + record.year + "#highTechApply"}> {record.noticeTypeName} </a>;
-                            case 4:
-                                return <a href={globalConfig.context + "/admin/servicesManage/technology.html?rid=" + record.rid + "&uid=" + record.uid + "#applyManage"}> {record.noticeTypeName} </a>;
-                            case 5:
-                                return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=0" + (window.showUserList ? "#userList" : "#customerList")}> {record.noticeTypeName} </a>;
-                            case 6:
-                                return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=1" + (window.showOrgList ? "#orgList" : "#customerList")}> {record.noticeTypeName} </a >;
-                            case 7:
-                                return <a href={globalConfig.context + "/admin/servicesManage/contract.html?rid=" + record.rid + "&uid=" + record.uid + "#contract"}> {record.noticeTypeName} </a >;
-                            case 8:
-                                return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "#techDemandUser"}> {record.noticeTypeName} </a >;
-                            case 9:
-                                return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "&uid=" + record.uid + "#techDemandOrg"}> {record.noticeTypeName} </a >;
-                            case 10:
-                                return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#orgTechAchievement"}> {record.noticeTypeName} </a >;
-                            case 11:
-                                return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#userTechAchievement"}> {record.noticeTypeName} </a >;                           
-                        }
+//                      switch (text) {
+//                          case 1:
+//                              return <a href={globalConfig.context + "/admin/servicesManage/patent.html?rid=" + record.rid + "&uid=" + record.uid + "#comprehensive"}> {record.noticeTypeName} </a>;
+//                          case 3:
+//                              return <a href={globalConfig.context + "/admin/servicesManage/copyright.html?rid=" + record.rid + "&uid=" + record.uid + "#copyright"}> {record.noticeTypeName} </a>;
+//                          case 2:
+//                              return <a href={globalConfig.context + "/admin/servicesManage/highTech.html?rid=" + record.rid + "&uid=" + record.uid + "&year=" + record.year + "#highTechApply"}> {record.noticeTypeName} </a>;
+//                          case 4:
+//                              return <a href={globalConfig.context + "/admin/servicesManage/technology.html?rid=" + record.rid + "&uid=" + record.uid + "#applyManage"}> {record.noticeTypeName} </a>;
+//                          case 5:
+//                              return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=0" + (window.showUserList ? "#userList" : "#customerList")}> {record.noticeTypeName} </a>;
+//                          case 6:
+//                              return <a href={globalConfig.context + "/admin/userManage.html?id=" + record.uid + "&type=1" + (window.showOrgList ? "#orgList" : "#customerList")}> {record.noticeTypeName} </a >;
+//                          case 7:
+//                              return <a href={globalConfig.context + "/admin/servicesManage/contract.html?rid=" + record.rid + "&uid=" + record.uid + "#contract"}> {record.noticeTypeName} </a >;
+//                          case 8:
+//                              return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "#techDemandUser"}> {record.noticeTypeName} </a >;
+//                          case 9:
+//                              return <a href={globalConfig.context + "/admin/demand.html?rid=" + record.rid + "&uid=" + record.uid + "#techDemandOrg"}> {record.noticeTypeName} </a >;
+//                          case 10:
+//                              return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#orgTechAchievement"}> {record.noticeTypeName} </a >;
+//                          case 11:
+//                              return <a href={globalConfig.context + "/admin/achievement.html?rid=" + record.rid + "#userTechAchievement"}> {record.noticeTypeName} </a >;                           
+//                      }
+					return (<span>{record.noticeTypeName}</span>)
                     }
                 }, {
                     title: '时间',

+ 1 - 1
js/component/manageCenter/userOrder/content.jsx

@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import '../content.less';
 import './content.less';
 import LeftTab from '../leftTab';
-import {getMenu} from '../publicMenu.jsx'
+import {getMenu} from '../publicMenu.js'
 
 class Content extends Component {
     constructor() {

+ 29 - 2
js/component/tools.js

@@ -69,7 +69,9 @@ import {
     orderType, orderStage, orderState,paymentState, orderChannel, approvedState, lock,paymentMethod,transactionChannel,projectState,transactionProject,
     client,
     stick,
-    taskStatus
+    taskStatus,
+    changeState,
+    distributeState
 } from './dataDic.js';
 
 import { provinceList} from './NewDicProvinceList.js';
@@ -348,7 +350,6 @@ module.exports = {
         });
         return theArr;
     },
-    
     setUserContactsList(){
         let theOption = [];
         $.ajax({
@@ -1315,4 +1316,30 @@ module.exports = {
             return theType;
         }
 	},
+	//变更状态
+	getChangeState:function(e){
+   		if (e||e==0) {
+   			let str=e.toString()
+            let theType = '';
+            changeState.map(function (item) {
+                if (item.value == str) {
+                    theType = item.key;
+                };
+            });
+            return theType;
+        }
+	},
+	//分派情况
+	getDistributeState:function(e){
+   		if (e||e==0) {
+   			let str=e.toString()
+            let theType = '';
+            distributeState.map(function (item) {
+                if (item.value == str) {
+                    theType = item.key;
+                };
+            });
+            return theType;
+        }
+	}
 }

+ 1 - 0
webpack.config.js

@@ -294,6 +294,7 @@ module.exports = (function () {
     staticHost = staticHost + '/' + version + '/';
     theme['@icon-url'] = '"' + staticHost + 'css/iconfont/iconfont"'
     return {
+    	//devtool:"source-map",
         entry: isWatch ? entries.watch : entries.prod,
         output: {
             path: path.resolve(__dirname, './build/' + argv.env.deploy + '/' + version),