mentoswzq 4 年之前
父節點
當前提交
04be8b68df
共有 20 個文件被更改,包括 3258 次插入1443 次删除
  1. 1 1
      js/component/manageCenter/customer/NEW/intentionCustomer/addIntention.jsx
  2. 4 0
      js/component/manageCenter/customer/NEW/intentionCustomer/followDetail.jsx
  3. 163 84
      js/component/manageCenter/customer/NEW/intentionCustomer/followDetail/addContact.jsx
  4. 70 49
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/business.jsx
  5. 2 2
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/contactPerson.jsx
  6. 83 72
      js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/visit.jsx
  7. 4 0
      js/component/manageCenter/customer/NEW/signCustomer/followDetail.jsx
  8. 162 84
      js/component/manageCenter/customer/NEW/signCustomer/followDetail/addContact.jsx
  9. 5 5
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/business.jsx
  10. 2 2
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/contactPerson.jsx
  11. 82 72
      js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/visit.jsx
  12. 271 160
      js/component/manageCenter/financialManage/orderDetail/orderDetail.jsx
  13. 161 8
      js/component/manageCenter/order/orderNew/addService.jsx
  14. 12 5
      js/component/manageCenter/order/orderNew/changeComponent/changeApply.js
  15. 41 2
      js/component/manageCenter/order/orderNew/examine.jsx
  16. 48 15
      js/component/manageCenter/project/project/projectAssignment.jsx
  17. 618 64
      js/component/manageCenter/project/task/myTask.jsx
  18. 34 4
      js/component/manageCenter/project/task/taskAssignment.jsx
  19. 1494 813
      js/component/manageCenter/set/business/businessProject.jsx
  20. 1 1
      package.json

+ 1 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/addIntention.jsx

@@ -26,7 +26,7 @@ const AchievementDetailForm = Form.create()(React.createClass({
             };
             if (/.*[\u4e00-\u9fa5]+.*$/.test(values.content)) {
             } else {
-              message.error("请填写正确的姓名,且至少包含一个汉字");
+              message.error("请填写正确的联系人,且至少包含一个汉字");
               return false;
             };
 	    	if(!values.ProvinceCity[1]) {

+ 4 - 0
js/component/manageCenter/customer/NEW/intentionCustomer/followDetail.jsx

@@ -315,6 +315,10 @@ const FollowDetail = React.createClass({
 			message.warning('请选择联系人')
 			return false;
 		}
+		if (this.state.result.length<10) {
+			message.warning("备注不少于10个字符!");
+			return false;
+		}
 		if(this.state.data.length&&GlossoryId) {
 			message.warning("项目名称/最新进度/最新状态不能为空!")
 			return false;

+ 163 - 84
js/component/manageCenter/customer/NEW/intentionCustomer/followDetail/addContact.jsx

@@ -25,18 +25,25 @@ const AddContact = React.createClass({
 	//新增联系人保存函数
 	submitcontactman(e) {
 		e.preventDefault();
-		if(!this.state.newname){
-			message.warn('请输入姓名');
-			return ;
-		};
-		if(!this.state.newmobile){
-			message.warn('请输入手机号码');
+		if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.newname)) {
+		} else {
+			message.error("请填写正确的姓名,且至少包含一个汉字");
 			return ;
 		};
 		if(this.state.newmobile.length!=11){
 			message.error('请填写正确的手机号码');
 		  return
 		}
+		if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.newdepatrment)) {
+		} else {
+			message.error("请填写正确的部门,且至少包含一个汉字");
+			return;
+		};
+		if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.newposition)) {
+		} else {
+			message.error("请填写正确的职位,且至少包含一个汉字");
+			return;
+		};
 		this.setState({
 			loading: true
 		})
@@ -87,84 +94,156 @@ const AddContact = React.createClass({
 		
 	},
 	render() {
-		return(
-			<div>
-				<Modal
-				      footer=''
-				      width='800px'
-			          title="新增联系人"
-			          visible={this.state.addcontactModul}
-			          onOk={this.addcontactModulOK}
-			          onCancel={this.addcontactModulcancel}						          							          
-						        >
-				        <Form layout="horizontal" onSubmit={this.submitcontactman} id="demand-form">
-					      <Spin spinning={this.state.loading}> 											             
-					        <Row>	
-			                    <FormItem 
-			                        labelCol={{ span: 3 }}
-			                        wrapperCol={{ span: 14 }}
-			                        label="性别:"  style={{marginRight:'10px',marginTop: '-15px'}}>
-			                        <Radio.Group value={this.state.newsex} onChange={(e) => {
-					                    this.setState({ newsex: e.target.value }) 
-					                    }}>
-					                        <Radio value='男'>男</Radio>
-					                        <Radio value='女'>女</Radio>
-				                    </Radio.Group>
-			                    </FormItem>	
-							</Row>								               
-					        <Row style={{ paddingLeft:'50px' }}>
-		                        <Col span={2}><span style={{color:'red'}}>*</span>姓名:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newname}
-                                        onChange={(e) => { this.setState({ newname: e.target.value }) }} />
-                                </Col>
-                                <Col span={2} style={{ marginLeft: '50px' }}><span style={{color:'red'}}>*</span>手机:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newmobile} 
-                                        onChange={(e) => { this.setState({ newmobile: e.target.value }) }} />
-                                </Col>
-                                
-                            </Row>
-		                    <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>
-                                <Col span={2}>微信:</Col>
-                                	<Col span={8}>
-                                    <Input value={this.state.newwechat}
-                                        onChange={(e) => { this.setState({ newwechat: e.target.value }) }} />
-                                </Col>
-                                <Col span={2} style={{ marginLeft: '50px' }}>Q Q:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newqq}
-                                        onChange={(e) => { this.setState({ newqq: e.target.value }) }} />
-                                </Col>
-                            </Row>
-                            <Row style={{ marginTop: '20px' ,paddingLeft:'50px'}}>
-                        		<Col span={2}>部门:</Col>
-                        		<Col span={8}>
-                           		 	<Input value={this.state.newdepatrment}
-                               		 onChange={(e) => { this.setState({ newdepatrment: e.target.value }) }} />
-                                </Col>
-                                <Col span={2} style={{ marginLeft: '50px' }}>职位:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newposition}
-                                        onChange={(e) => { this.setState({ newposition: e.target.value }) }} />
-                                </Col>
-                            </Row>	
-                            <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>						                       
-                                <Col span={2}>邮箱:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newemail}
-                                        onChange={(e) => { this.setState({ newemail: e.target.value }) }} />
-                                </Col>
-                            </Row>
-                            <Row style={{ marginTop: '20px',paddingLeft:'50px' ,marginBottom:'50px'}}>
-		                          <Button className="set-submit" type="primary" htmlType="submit"  id="change_keep" style={{marginLeft:'60px'}}>保存</Button>
-					              <Button className="set-submit" type="ghost" onClick={this.addcontactModulcancel} id='change_rem'>取消</Button>
-			            	</Row>
-			            </Spin>
-			        </Form>   
-			    </Modal>
-			</div>
-		)
+		return (
+      <div>
+        <Modal
+          footer=""
+          width="800px"
+          title="新增联系人"
+          visible={this.state.addcontactModul}
+          onOk={this.addcontactModulOK}
+          onCancel={this.addcontactModulcancel}
+        >
+          <Form
+            layout="horizontal"
+            onSubmit={this.submitcontactman}
+            id="demand-form"
+          >
+            <Spin spinning={this.state.loading}>
+              <Row>
+                <FormItem
+                  labelCol={{ span: 3 }}
+                  wrapperCol={{ span: 14 }}
+                  label="性别:"
+                  style={{ marginRight: "10px", marginTop: "-15px" }}
+                >
+                  <Radio.Group
+                    value={this.state.newsex}
+                    onChange={(e) => {
+                      this.setState({ newsex: e.target.value });
+                    }}
+                  >
+                    <Radio value="男">男</Radio>
+                    <Radio value="女">女</Radio>
+                  </Radio.Group>
+                </FormItem>
+              </Row>
+              <Row style={{ paddingLeft: "50px" }}>
+                <Col span={2}>
+                  <span style={{ color: "red" }}>*</span>姓名:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newname}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newname: e.target.value });
+                    }}
+                  />
+                </Col>
+                <Col span={2} style={{ marginLeft: "50px" }}>
+                  <span style={{ color: "red" }}>*</span>手机:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newmobile}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newmobile: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row style={{ marginTop: "20px", paddingLeft: "50px" }}>
+                <Col span={2}>微信:</Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newwechat}
+                    onChange={(e) => {
+                      this.setState({ newwechat: e.target.value });
+                    }}
+                  />
+                </Col>
+                <Col span={2} style={{ marginLeft: "50px" }}>
+                  Q Q:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newqq}
+                    onChange={(e) => {
+                      this.setState({ newqq: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row style={{ marginTop: "20px", paddingLeft: "50px" }}>
+                <Col span={2}>
+                  <span style={{ color: "red" }}>*</span>部门:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newdepatrment}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newdepatrment: e.target.value });
+                    }}
+                  />
+                </Col>
+                <Col span={2} style={{ marginLeft: "50px" }}>
+                  <span style={{ color: "red" }}>*</span>
+                  职位:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newposition}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newposition: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row style={{ marginTop: "20px", paddingLeft: "50px" }}>
+                <Col span={2}>邮箱:</Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newemail}
+                    onChange={(e) => {
+                      this.setState({ newemail: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row
+                style={{
+                  marginTop: "20px",
+                  paddingLeft: "50px",
+                  marginBottom: "50px",
+                }}
+              >
+                <Button
+                  className="set-submit"
+                  type="primary"
+                  htmlType="submit"
+                  id="change_keep"
+                  style={{ marginLeft: "60px" }}
+                >
+                  保存
+                </Button>
+                <Button
+                  className="set-submit"
+                  type="ghost"
+                  onClick={this.addcontactModulcancel}
+                  id="change_rem"
+                >
+                  取消
+                </Button>
+              </Row>
+            </Spin>
+          </Form>
+        </Modal>
+      </div>
+    );
 	}
 })
 export default AddContact;

+ 70 - 49
js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/business.jsx

@@ -7,55 +7,76 @@ import BusinessDetail from './businessDetail.jsx';
 
 const Business = React.createClass({
 	getInitialState(){
-		return{
-			loading:false,
-			dataBusiness:[],
-			followData:{},
-			paginationt: {
-				defaultCurrent: 1,
-				defaultPageSize: 10,
-				showQuickJumper: true,
-				pageSize: 10,
-				onChange: function(page) {
-					this.BusinessList(page, false);
-				}.bind(this),
-				showTotal: function(total) {
-					return '共' + total + '条数据';
-				}
-			},
-			businessIntentionList: [{
-				title: '意向时间',
-				dataIndex: 'createTime',
-				key: 'createTime'
-			}, {
-				title: '客户名称',
-				dataIndex: 'identifyName',
-				key: 'identifyName'
-			}, {
-				title: '业务名',
-				dataIndex: 'businessName',
-				key: 'businessName'
-			}, {
-				title: '营销员',
-				dataIndex: 'adminName',
-				key: 'adminName'
-			}, {
-				title: '业务意向进度',
-				dataIndex: 'followSituation',
-				key: 'followSituation',
-				render: text => { return getfllowSituation(text) }
-			}, {
-				title: '客户状态',
-				dataIndex: 'customerStatus',
-				key: 'customerStatus',
-				render: text => { return getcustomerStatue(text) }
-			}, {
-				title: '操作',
-				dataIndex: 'ooo',
-				key: 'ooo',
-				render: (text, record) => { return(<Button onClick={(e)=>{this.businessIntentionDetails(record)}}>查看</Button>) }
-			}],
-		}
+		return {
+      loading: false,
+      dataBusiness: [],
+      followData: {},
+      paginationt: {
+        defaultCurrent: 1,
+        defaultPageSize: 10,
+        showQuickJumper: true,
+        pageSize: 10,
+        onChange: function (page) {
+          this.BusinessList(page, false);
+        }.bind(this),
+        showTotal: function (total) {
+          return "共" + total + "条数据";
+        },
+      },
+      businessIntentionList: [
+        {
+          title: "客户名称",
+          dataIndex: "identifyName",
+          key: "identifyName",
+        },
+        {
+          title: "业务名",
+          dataIndex: "businessName",
+          key: "businessName",
+        },
+        {
+          title: "营销员",
+          dataIndex: "adminName",
+          key: "adminName",
+        },
+        {
+          title: "业务意向进度",
+          dataIndex: "followSituation",
+          key: "followSituation",
+          render: (text) => {
+            return getfllowSituation(text);
+          },
+        },
+        {
+          title: "客户状态",
+          dataIndex: "customerStatus",
+          key: "customerStatus",
+          render: (text) => {
+            return getcustomerStatue(text);
+          },
+        },{
+          title: "意向时间",
+          dataIndex: "createTime",
+          key: "createTime",
+        },
+        {
+          title: "操作",
+          dataIndex: "ooo",
+          key: "ooo",
+          render: (text, record) => {
+            return (
+              <Button
+                onClick={(e) => {
+                  this.businessIntentionDetails(record);
+                }}
+              >
+                查看
+              </Button>
+            );
+          },
+        },
+      ],
+    };
 	},
 	businessIntentionDetails(record){
 		this.setState({

+ 2 - 2
js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/contactPerson.jsx

@@ -342,7 +342,7 @@ const ContactPerson = React.createClass({
     }
     if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.departmentModal)) {
     } else {
-      message.error("请填写正确的姓名,且至少包含一个汉字");
+      message.error("请填写正确的部门,且至少包含一个汉字");
       return;
     }
     if(this.state.positionModal.length==0){
@@ -351,7 +351,7 @@ const ContactPerson = React.createClass({
     }
     if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.positionModal)) {
     } else {
-      message.error("请填写正确的姓名,且至少包含一个汉字");
+      message.error("请填写正确的职位,且至少包含一个汉字");
       return;
     }
     this.setState({

+ 83 - 72
js/component/manageCenter/customer/NEW/intentionCustomer/intentionDetail/detail/visit.jsx

@@ -8,78 +8,89 @@ import VisitDetail from './visitDetail.jsx';
 
 const Visit = React.createClass({
 	getInitialState(){
-		return{
-			visitArrList:[],
-			loading:false,
-			visitModul:false,
-			visitModuls:false,
-			paginations: {
-				defaultCurrent: 1,
-				defaultPageSize: 10,
-				showQuickJumper: true,
-				pageSize: 10,
-				onChange: function(page) {
-					this.loadVisit(page);
-				}.bind(this),
-				showTotal: function(total) {
-					return '共' + total + '条数据';
-				}
-			},
-			visitsList: [{
-				title: '跟进时间',
-				dataIndex: 'followTime',
-				key: 'followTime'
-			}, {
-				title: '客户名称',
-				dataIndex: 'identifyName',
-				key: 'identifyName'
-			}, {
-				title: '跟进方式',
-				dataIndex: 'contactType',
-				key: 'contactType',
-				render: text => { return getContactType(text) }
-			}, {
-				title: '联系人',
-				dataIndex: 'contacts',
-				key: 'contacts',
-				render:(text,record)=>{
-					return  <div>{record.readOnly?
-								<span>***</span>:
-								<span>{text}</span>}
-							</div>
-				}
-			}, {
-				title: '联系电话',
-				dataIndex: 'contactMobile',
-				key: 'contactMobile',
-				render:(text,record)=>{
-					return  <div>{record.readOnly?
-								<span>***</span>:
-								<span>{text}</span>}
-							</div>
-				}
-			}, {
-				title: '跟进人',
-				dataIndex: 'adminName',
-				key: 'adminName'
-			}, {
-				title: '跟进说明',
-				dataIndex: 'result',
-				key: 'result'
-			// }, {
-			// 	title: '操作',
-			// 	dataIndex: 'ttt',
-			// 	key: 'ttt',
-			// 	render: (text, record, index) => {
-			// 		return <div>
-            //                 {!record.readOnly&&<Popconfirm title="是否删除?" onConfirm={(e)=>{this.visitDelet(record)}} okText="删除" cancelText="不删除">
-			// 				    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}} onClick={(e)=>{e.stopPropagation()}}>删除</Button>
-			// 				</Popconfirm>}
-            //             </div>
-			// 	}
-			}
-		],
-		}
+		return {
+      visitArrList: [],
+      loading: false,
+      visitModul: false,
+      visitModuls: false,
+      paginations: {
+        defaultCurrent: 1,
+        defaultPageSize: 10,
+        showQuickJumper: true,
+        pageSize: 10,
+        onChange: function (page) {
+          this.loadVisit(page);
+        }.bind(this),
+        showTotal: function (total) {
+          return "共" + total + "条数据";
+        },
+      },
+      visitsList: [
+        {
+          title: "客户名称",
+          dataIndex: "identifyName",
+          key: "identifyName",
+        },
+        {
+          title: "跟进方式",
+          dataIndex: "contactType",
+          key: "contactType",
+          render: (text) => {
+            return getContactType(text);
+          },
+        },
+        {
+          title: "联系人",
+          dataIndex: "contacts",
+          key: "contacts",
+          render: (text, record) => {
+            return (
+              <div>
+                {record.readOnly ? <span>***</span> : <span>{text}</span>}
+              </div>
+            );
+          },
+        },
+        {
+          title: "联系电话",
+          dataIndex: "contactMobile",
+          key: "contactMobile",
+          render: (text, record) => {
+            return (
+              <div>
+                {record.readOnly ? <span>***</span> : <span>{text}</span>}
+              </div>
+            );
+          },
+        },
+        {
+          title: "跟进人",
+          dataIndex: "adminName",
+          key: "adminName",
+        },
+        {
+          title: "跟进说明",
+          dataIndex: "result",
+          key: "result",
+          // }, {
+          // 	title: '操作',
+          // 	dataIndex: 'ttt',
+          // 	key: 'ttt',
+          // 	render: (text, record, index) => {
+          // 		return <div>
+          //                 {!record.readOnly&&<Popconfirm title="是否删除?" onConfirm={(e)=>{this.visitDelet(record)}} okText="删除" cancelText="不删除">
+          // 				    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}} onClick={(e)=>{e.stopPropagation()}}>删除</Button>
+          // 				</Popconfirm>}
+          //             </div>
+          // 	}
+        },
+        {
+          title: "跟进时间",
+          dataIndex: "followTime",
+          key: "followTime",
+        }
+      ],
+    };
 	},
 	//拜访记录删除
 	visitDelet(e) {

+ 4 - 0
js/component/manageCenter/customer/NEW/signCustomer/followDetail.jsx

@@ -252,6 +252,10 @@ const FollowDetail = React.createClass({
 			message.warning('请选择联系人')
 			return false;
 		}
+		if (this.state.result.length < 10) {
+			message.warning("备注不少于10个字符!");
+			return false;
+		}
 		if(this.state.data.length&&GlossoryId) {
 			message.warning("项目名称/最新进度/最新状态不能为空!")
 			return false;

+ 162 - 84
js/component/manageCenter/customer/NEW/signCustomer/followDetail/addContact.jsx

@@ -25,18 +25,25 @@ const AddContact = React.createClass({
 	//新增联系人保存函数
 	submitcontactman(e) {
 		e.preventDefault();
-		if(!this.state.newname){
-			message.warn('请输入姓名');
-			return ;
-		};
-		if(!this.state.newmobile){
-			message.warn('请输入手机号码');
+		if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.newname)) {
+		} else {
+			message.error("请填写正确的姓名,且至少包含一个汉字");
 			return ;
 		};
 		if(this.state.newmobile.length!=11){
 			message.error('请填写正确的手机号码');
 		  return
 		}
+		if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.newdepatrment)) {
+		} else {
+			message.error("请填写正确的部门,且至少包含一个汉字");
+			return;
+		};
+		if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.newposition)) {
+		} else {
+			message.error("请填写正确的职位,且至少包含一个汉字");
+			return;
+		};
 		this.setState({
 			loading: true
 		})
@@ -86,84 +93,155 @@ const AddContact = React.createClass({
 		};
 	},
 	render() {
-		return(
-			<div>
-				<Modal
-				      footer=''
-				      width='800px'
-			          title="新增联系人"
-			          visible={this.state.addcontactModul}
-			          onOk={this.addcontactModulOK}
-			          onCancel={this.addcontactModulcancel}						          							          
-						        >
-				        <Form layout="horizontal" onSubmit={this.submitcontactman} id="demand-form">
-					      <Spin spinning={this.state.loading}> 											             
-					        <Row>	
-			                    <FormItem 
-			                        labelCol={{ span: 3 }}
-			                        wrapperCol={{ span: 14 }}
-			                        label="性别:"  style={{marginRight:'10px',marginTop: '-15px'}}>
-			                        <Radio.Group value={this.state.newsex} onChange={(e) => {
-					                    this.setState({ newsex: e.target.value }) 
-					                    }}>
-					                        <Radio value='男'>男</Radio>
-					                        <Radio value='女'>女</Radio>
-				                    </Radio.Group>
-			                    </FormItem>	
-							</Row>								               
-					        <Row style={{ paddingLeft:'50px' }}>
-		                        <Col span={2}><span style={{color:'red'}}>*</span>姓名:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newname}
-                                        onChange={(e) => { this.setState({ newname: e.target.value }) }} />
-                                </Col>
-                                <Col span={2} style={{ marginLeft: '50px' }}><span style={{color:'red'}}>*</span>手机:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newmobile} 
-                                        onChange={(e) => { this.setState({ newmobile: e.target.value }) }} />
-                                </Col>
-                                
-                            </Row>
-		                    <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>
-                                <Col span={2}>微信:</Col>
-                                	<Col span={8}>
-                                    <Input value={this.state.newwechat}
-                                        onChange={(e) => { this.setState({ newwechat: e.target.value }) }} />
-                                </Col>
-                                <Col span={2} style={{ marginLeft: '50px' }}>Q Q:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newqq}
-                                        onChange={(e) => { this.setState({ newqq: e.target.value }) }} />
-                                </Col>
-                            </Row>
-                            <Row style={{ marginTop: '20px' ,paddingLeft:'50px'}}>
-                        		<Col span={2}>部门:</Col>
-                        		<Col span={8}>
-                           		 	<Input value={this.state.newdepatrment}
-                               		 onChange={(e) => { this.setState({ newdepatrment: e.target.value }) }} />
-                                </Col>
-                                <Col span={2} style={{ marginLeft: '50px' }}>职位:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newposition}
-                                        onChange={(e) => { this.setState({ newposition: e.target.value }) }} />
-                                </Col>
-                            </Row>	
-                            <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>						                       
-                                <Col span={2}>邮箱:</Col>
-                                <Col span={8}>
-                                    <Input value={this.state.newemail}
-                                        onChange={(e) => { this.setState({ newemail: e.target.value }) }} />
-                                </Col>
-                            </Row>
-                            <Row style={{ marginTop: '20px',paddingLeft:'50px' ,marginBottom:'50px'}}>
-		                          <Button className="set-submit" type="primary" htmlType="submit"  id="change_keep" style={{marginLeft:'60px'}}>保存</Button>
-					              <Button className="set-submit" type="ghost" onClick={this.addcontactModulcancel} id='change_rem'>取消</Button>
-			            	</Row>
-			            </Spin>
-			        </Form>   
-			    </Modal>
-			</div>
-		)
+		return (
+      <div>
+        <Modal
+          footer=""
+          width="800px"
+          title="新增联系人"
+          visible={this.state.addcontactModul}
+          onOk={this.addcontactModulOK}
+          onCancel={this.addcontactModulcancel}
+        >
+          <Form
+            layout="horizontal"
+            onSubmit={this.submitcontactman}
+            id="demand-form"
+          >
+            <Spin spinning={this.state.loading}>
+              <Row>
+                <FormItem
+                  labelCol={{ span: 3 }}
+                  wrapperCol={{ span: 14 }}
+                  label="性别:"
+                  style={{ marginRight: "10px", marginTop: "-15px" }}
+                >
+                  <Radio.Group
+                    value={this.state.newsex}
+                    onChange={(e) => {
+                      this.setState({ newsex: e.target.value });
+                    }}
+                  >
+                    <Radio value="男">男</Radio>
+                    <Radio value="女">女</Radio>
+                  </Radio.Group>
+                </FormItem>
+              </Row>
+              <Row style={{ paddingLeft: "50px" }}>
+                <Col span={2}>
+                  <span style={{ color: "red" }}>*</span>姓名:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newname}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newname: e.target.value });
+                    }}
+                  />
+                </Col>
+                <Col span={2} style={{ marginLeft: "50px" }}>
+                  <span style={{ color: "red" }}>*</span>手机:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newmobile}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newmobile: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row style={{ marginTop: "20px", paddingLeft: "50px" }}>
+                <Col span={2}>微信:</Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newwechat}
+                    onChange={(e) => {
+                      this.setState({ newwechat: e.target.value });
+                    }}
+                  />
+                </Col>
+                <Col span={2} style={{ marginLeft: "50px" }}>
+                  Q Q:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newqq}
+                    onChange={(e) => {
+                      this.setState({ newqq: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row style={{ marginTop: "20px", paddingLeft: "50px" }}>
+                <Col span={2}>
+                  <span style={{ color: "red" }}>*</span>部门:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newdepatrment}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newdepatrment: e.target.value });
+                    }}
+                  />
+                </Col>
+                <Col span={2} style={{ marginLeft: "50px" }}>
+                  <span style={{ color: "red" }}>*</span>职位:
+                </Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newposition}
+                    required="required"
+                    onChange={(e) => {
+                      this.setState({ newposition: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row style={{ marginTop: "20px", paddingLeft: "50px" }}>
+                <Col span={2}>邮箱:</Col>
+                <Col span={8}>
+                  <Input
+                    value={this.state.newemail}
+                    onChange={(e) => {
+                      this.setState({ newemail: e.target.value });
+                    }}
+                  />
+                </Col>
+              </Row>
+              <Row
+                style={{
+                  marginTop: "20px",
+                  paddingLeft: "50px",
+                  marginBottom: "50px",
+                }}
+              >
+                <Button
+                  className="set-submit"
+                  type="primary"
+                  htmlType="submit"
+                  id="change_keep"
+                  style={{ marginLeft: "60px" }}
+                >
+                  保存
+                </Button>
+                <Button
+                  className="set-submit"
+                  type="ghost"
+                  onClick={this.addcontactModulcancel}
+                  id="change_rem"
+                >
+                  取消
+                </Button>
+              </Row>
+            </Spin>
+          </Form>
+        </Modal>
+      </div>
+    );
 	}
 })
 export default AddContact;

+ 5 - 5
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/business.jsx

@@ -38,11 +38,6 @@ const Business = React.createClass({
       },
       businessIntentionList: [
         {
-          title: "意向时间",
-          dataIndex: "createTime",
-          key: "createTime",
-        },
-        {
           title: "客户名称",
           dataIndex: "identifyName",
           key: "identifyName",
@@ -74,6 +69,11 @@ const Business = React.createClass({
           },
         },
         {
+          title: "意向时间",
+          dataIndex: "createTime",
+          key: "createTime",
+        },
+        {
           title: "操作",
           dataIndex: "ooo",
           key: "ooo",

+ 2 - 2
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/contactPerson.jsx

@@ -341,7 +341,7 @@ const ContactPerson = React.createClass({
     }
     if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.departmentModal)) {
     } else {
-      message.error("请填写正确的姓名,且至少包含一个汉字");
+      message.error("请填写正确的部门,且至少包含一个汉字");
       return;
     }
     if (this.state.positionModal.length == 0) {
@@ -350,7 +350,7 @@ const ContactPerson = React.createClass({
     }
     if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.positionModal)) {
     } else {
-      message.error("请填写正确的姓名,且至少包含一个汉字");
+      message.error("请填写正确的职位,且至少包含一个汉字");
       return;
     }
     this.setState({

+ 82 - 72
js/component/manageCenter/customer/NEW/signCustomer/intentionDetail/detail/visit.jsx

@@ -8,78 +8,88 @@ import VisitDetail from './visitDetail.jsx';
 
 const Visit = React.createClass({
 	getInitialState(){
-		return{
-			visitArrList:[],
-			loading:false,
-			visitModul:false,
-			visitModuls:false,
-			paginations: {
-				defaultCurrent: 1,
-				defaultPageSize: 10,
-				showQuickJumper: true,
-				pageSize: 10,
-				onChange: function(page) {
-					this.loadVisit(page);
-				}.bind(this),
-				showTotal: function(total) {
-					return '共' + total + '条数据';
-				}
-			},
-			visitsList: [{
-				title: '跟进时间',
-				dataIndex: 'followTime',
-				key: 'followTime'
-			}, {
-				title: '客户名称',
-				dataIndex: 'identifyName',
-				key: 'identifyName'
-			}, {
-				title: '跟进方式',
-				dataIndex: 'contactType',
-				key: 'contactType',
-				render: text => { return getContactType(text) }
-			}, {
-				title: '联系人',
-				dataIndex: 'contacts',
-				key: 'contacts',
-				render:(text,record)=>{
-					return  <div>{record.readOnly?
-								<span>***</span>:
-								<span>{text}</span>}
-							</div>
-				}
-			}, {
-				title: '联系电话',
-				dataIndex: 'contactMobile',
-				key: 'contactMobile',
-				render:(text,record)=>{
-					return  <div>{record.readOnly?
-								<span>***</span>:
-								<span>{text}</span>}
-							</div>
-				}
-			}, {
-				title: '跟进人',
-				dataIndex: 'adminName',
-				key: 'adminName'
-			}, {
-				title: '跟进说明',
-				dataIndex: 'result',
-				key: 'result'
-			// }, {
-			// 	title: '操作',
-			// 	dataIndex: 'ttt',
-			// 	key: 'ttt',
-			// 	render: (text, record, index) => {
-			// 		return <div>
-            //                 {!record.readOnly&&<Popconfirm title="是否删除?" onConfirm={(e)=>{this.visitDelet(record)}} okText="删除" cancelText="不删除">
-			// 				    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}} onClick={(e)=>{e.stopPropagation()}}>删除</Button>
-			// 				</Popconfirm>}
-            //             </div>
-			// 	}
-			}
-		],
-		}
+		return {
+      visitArrList: [],
+      loading: false,
+      visitModul: false,
+      visitModuls: false,
+      paginations: {
+        defaultCurrent: 1,
+        defaultPageSize: 10,
+        showQuickJumper: true,
+        pageSize: 10,
+        onChange: function (page) {
+          this.loadVisit(page);
+        }.bind(this),
+        showTotal: function (total) {
+          return "共" + total + "条数据";
+        },
+      },
+      visitsList: [
+        {
+          title: "客户名称",
+          dataIndex: "identifyName",
+          key: "identifyName",
+        },
+        {
+          title: "跟进方式",
+          dataIndex: "contactType",
+          key: "contactType",
+          render: (text) => {
+            return getContactType(text);
+          },
+        },
+        {
+          title: "联系人",
+          dataIndex: "contacts",
+          key: "contacts",
+          render: (text, record) => {
+            return (
+              <div>
+                {record.readOnly ? <span>***</span> : <span>{text}</span>}
+              </div>
+            );
+          },
+        },
+        {
+          title: "联系电话",
+          dataIndex: "contactMobile",
+          key: "contactMobile",
+          render: (text, record) => {
+            return (
+              <div>
+                {record.readOnly ? <span>***</span> : <span>{text}</span>}
+              </div>
+            );
+          },
+        },
+        {
+          title: "跟进人",
+          dataIndex: "adminName",
+          key: "adminName",
+        },
+        {
+          title: "跟进说明",
+          dataIndex: "result",
+          key: "result",
+          // }, {
+          // 	title: '操作',
+          // 	dataIndex: 'ttt',
+          // 	key: 'ttt',
+          // 	render: (text, record, index) => {
+          // 		return <div>
+          //                 {!record.readOnly&&<Popconfirm title="是否删除?" onConfirm={(e)=>{this.visitDelet(record)}} okText="删除" cancelText="不删除">
+          // 				    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}} onClick={(e)=>{e.stopPropagation()}}>删除</Button>
+          // 				</Popconfirm>}
+          //             </div>
+          // 	}
+        },{
+          title: "跟进时间",
+          dataIndex: "followTime",
+          key: "followTime",
+        }
+      ],
+    };
 	},
 	//拜访记录删除
 	visitDelet(e) {

+ 271 - 160
js/component/manageCenter/financialManage/orderDetail/orderDetail.jsx

@@ -19,7 +19,8 @@ import {
   getApproval,
   getLiquidationStatus,
   getProjectStatus,
-  getCuikuan
+  getboutique,
+  getCuikuan,
 } from "@/tools";
 import OrderRiZi from "@/orderRiZi.jsx";
 import ResolutionDetail from "@/resolutionDetail";
@@ -28,7 +29,7 @@ const OrderDetail = Form.create()(
     loadXmu(record) {
       this.state.data = [];
       this.setState({
-        loading: true
+        loading: true,
       });
       $.ajax({
         method: "get",
@@ -36,9 +37,9 @@ const OrderDetail = Form.create()(
         crossDomain: false,
         url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
         data: {
-          orderNo: record ? record.orderNo : this.props.data.orderNo
+          orderNo: record ? record.orderNo : this.props.data.orderNo,
         },
-        success: function(data) {
+        success: function (data) {
           let theArr = [];
           if (!data.data) {
             if (data.error && data.error.length) {
@@ -63,19 +64,22 @@ const OrderDetail = Form.create()(
                 certificateNumber: thisdata.certificateNumber,
                 projectStatus: thisdata.projectStatus,
                 sort: thisdata.cSort,
-                splitStatus: thisdata.splitStatus
+                splitStatus: thisdata.splitStatus,
+                officialCost: thisdata.officialCost,
+                costReduction: thisdata.costReduction,
+                type: thisdata.type,
               });
             }
           }
           this.setState({
             dataSource: theArr,
-            pagination: false
+            pagination: false,
           });
-        }.bind(this)
+        }.bind(this),
       }).always(
-        function() {
+        function () {
           this.setState({
-            loading: false
+            loading: false,
           });
         }.bind(this)
       );
@@ -86,6 +90,7 @@ const OrderDetail = Form.create()(
         visible: false,
         avisible: false,
         loading: false,
+        addnextVisible:false,
         jsDate: [],
         replenishUrl: [],
         auditStatus: 0,
@@ -101,16 +106,18 @@ const OrderDetail = Form.create()(
             key: "commodityName",
             render: (text, record) => {
               return text && text.length > 6 ? (
-                <span title={text}>{text.substr(0, 8) + "-" + record.id}...</span>
+                <span title={text}>
+                  {text.substr(0, 8) + "-" + record.id}...
+                </span>
               ) : (
                 text + "-" + record.id
               );
-            }
+            },
           },
           {
             title: "项目类别",
             dataIndex: "cname",
-            key: "cname"
+            key: "cname",
           },
           {
             title: "项目数量",
@@ -123,7 +130,7 @@ const OrderDetail = Form.create()(
                     {text}{" "}
                     <Tag
                       color="#108ee9"
-                      onClick={e => {
+                      onClick={(e) => {
                         e.stopPropagation();
                         this.showRes(record);
                       }}
@@ -135,63 +142,63 @@ const OrderDetail = Form.create()(
               } else {
                 return text;
               }
-            }
+            },
           },
           {
             title: "服务市价(万元)",
             dataIndex: "commodityPrice",
-            key: "commodityPrice"
+            key: "commodityPrice",
           },
           {
             title: "项目状态",
             dataIndex: "projectStatus",
             key: "projectStatus",
-            render: text => {
+            render: (text) => {
               return getProjectStatus(text);
-            }
+            },
           },
           {
             title: "证书编号",
             dataIndex: "certificateNumber",
-            key: "certificateNumber"
+            key: "certificateNumber",
           },
           {
             title: "是否主要项目",
             dataIndex: "main",
             key: "main",
-            render: text => {
+            render: (text) => {
               return text ? "是" : "否";
-            }
+            },
           },
           {
             title: "项目说明",
             dataIndex: "taskComment",
             key: "taskComment",
-            render: text => {
+            render: (text) => {
               return text && text.length > 8 ? (
                 <span title={text}>{text.substr(0, 8)}...</span>
               ) : (
                 text
               );
-            }
-          }
+            },
+          },
         ],
         columnsX: [
           {
             title: "流程",
             dataIndex: "processName",
-            key: "processName"
+            key: "processName",
           },
           {
             title: "操作人",
             dataIndex: "adminName",
-            key: "adminName"
+            key: "adminName",
           },
           {
             title: "时间",
             dataIndex: "createDate",
-            key: "createDate"
-          }
+            key: "createDate",
+          },
         ],
         ContactsListsNew: [
           {
@@ -200,13 +207,13 @@ const OrderDetail = Form.create()(
             key: "commodityName",
             render: (text, record) => {
               return <span>{text + "-" + record.tid}</span>;
-            }
+            },
           },
           {
             title: "项目分类",
             dataIndex: "projectType",
             key: "projectType",
-            render: text => {
+            render: (text) => {
               let arr = this.state.dataSource || [];
               let str = "";
               for (let i = 0; i < arr.length; i++) {
@@ -215,18 +222,18 @@ const OrderDetail = Form.create()(
                   return <span>{str}</span>;
                 }
               }
-            }
+            },
           },
           {
             title: "催款科目",
             dataIndex: "dunTypeName",
             key: "dunTypeName",
             render: (text, record) => {
-              if(record.customizeName) {
+              if (record.customizeName) {
                 return text + record.customizeName;
               }
               return <span>{text}</span>;
-            }
+            },
           },
           {
             title: "时间(天)",
@@ -239,7 +246,7 @@ const OrderDetail = Form.create()(
                 }
                 return <span>{text}</span>;
               }
-            }
+            },
           },
           {
             title: "金额(万元)",
@@ -259,7 +266,7 @@ const OrderDetail = Form.create()(
                   return <span>{text}</span>;
                 }
               }
-            }
+            },
           },
           {
             title: "服务年限",
@@ -269,53 +276,82 @@ const OrderDetail = Form.create()(
               if (record.dunTypeName) {
                 return <span>{text}</span>;
               }
-            }
+            },
           },
           {
             title: "催款状态",
             dataIndex: "status",
             key: "status",
-            render: text => {
+            render: (text) => {
               return <span>{text == 1 ? "已启动" : "未启动"}</span>;
-            }
-          }
+            },
+          },
         ],
         ContactsLists: [
           {
             title: "催款科目",
             dataIndex: "dunSubject",
             key: "dunSubject",
-            render: text => {
+            render: (text) => {
               return getjiedian(text);
-            }
+            },
           },
           {
             title: "金额(万元)",
             dataIndex: "money",
-            key: "money"
+            key: "money",
           },
           {
             title: "催款状态",
             dataIndex: "dunStatus",
             key: "dunStatus",
-            render: text => {
+            render: (text) => {
               return getCuikuan(text);
-            }
-          }
-        ]
+            },
+          },
+        ],
       };
     },
-
+    //点击打卡项目详情
+    tableRowClick(record) {
+      if (record.type == "1") {
+        this.setState({
+          displayFees: "block",
+          costReduction: record.costReduction,
+          officialCost: record.officialCost,
+        });
+      }
+      this.setState({
+        jid: record.id, //项目ID
+        kid: record.commodityId, //商品ID
+        commodityName: record.commodityName, //金额
+        commodityPrice: record.commodityPrice, //金额
+        commodityQuantity: record.commodityQuantity, //数量
+        taskComment: record.taskComment, //备注
+        main: record.main.toString(), //是否为主要
+        addnextVisible: true,
+        addState: 0,
+      });
+    },
+    //项目详情关闭
+    nextCancel() {
+      this.setState({
+        addnextVisible: false,
+        displayFees: "none",
+        officialCost: "", //是否有官费
+        costReduction: "", //是否有费减
+      });
+    },
     // 拆分详细
     showRes(record) {
       this.setState({
         resVisible: true,
-        resRecord: record
+        resRecord: record,
       });
     },
     resCancel() {
       this.setState({
-        resVisible: false
+        resVisible: false,
       });
     },
 
@@ -327,9 +363,9 @@ const OrderDetail = Form.create()(
         crossDomain: false,
         url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
         data: {
-          orderNo: record ? record.orderNo : this.props.data.orderNo
+          orderNo: record ? record.orderNo : this.props.data.orderNo,
         },
-        success: function(data) {
+        success: function (data) {
           let thisData = data.data;
           if (!thisData) {
             if (data.error && data.error.length) {
@@ -364,11 +400,11 @@ const OrderDetail = Form.create()(
             depName: thisData.depName,
             outsource: thisData.outsource == 0 ? "否" : "是",
           });
-        }.bind(this)
+        }.bind(this),
       }).always(
-        function() {
+        function () {
           this.setState({
-            loading: false
+            loading: false,
           });
         }.bind(this)
       );
@@ -380,9 +416,9 @@ const OrderDetail = Form.create()(
         crossDomain: false,
         url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
         data: {
-          orderNo: record ? record.orderNo : this.props.data.orderNo
+          orderNo: record ? record.orderNo : this.props.data.orderNo,
         },
-        success: function(data) {
+        success: function (data) {
           let thisData = data.data;
           if (!thisData.length) {
             if (data.error && data.error.length) {
@@ -391,14 +427,14 @@ const OrderDetail = Form.create()(
             thisData = {};
           } else {
             this.setState({
-              jsDate: thisData
+              jsDate: thisData,
             });
           }
-        }.bind(this)
+        }.bind(this),
       }).always(
-        function() {
+        function () {
           this.setState({
-            loading: false
+            loading: false,
           });
         }.bind(this)
       );
@@ -406,7 +442,7 @@ const OrderDetail = Form.create()(
 
     rizhi() {
       this.setState({
-        loading: true
+        loading: true,
       });
       $.ajax({
         method: "get",
@@ -414,9 +450,9 @@ const OrderDetail = Form.create()(
         crossDomain: false,
         url: "/api/admin/newOrder/selectOrderLog",
         data: {
-          orderNo: this.props.data.orderNo
+          orderNo: this.props.data.orderNo,
         },
-        success: function(data) {
+        success: function (data) {
           let theArr = [];
           let thisData = data.data;
           if (!thisData.length) {
@@ -431,18 +467,18 @@ const OrderDetail = Form.create()(
                 processName: thisdata.processName,
                 adminName: thisdata.adminName,
                 createDate: thisdata.createDate,
-                remarks: thisdata.remarks
+                remarks: thisdata.remarks,
               });
             }
           }
           this.setState({
-            dataSourceX: theArr
+            dataSourceX: theArr,
           });
-        }.bind(this)
+        }.bind(this),
       }).always(
-        function() {
+        function () {
           this.setState({
-            loading: false
+            loading: false,
           });
         }.bind(this)
       );
@@ -450,13 +486,13 @@ const OrderDetail = Form.create()(
 
     getOrderLog() {
       this.setState({
-        avisible: true
+        avisible: true,
       });
       this.rizhi();
     },
     closeOrderLog() {
       this.setState({
-        avisible: false
+        avisible: false,
       });
     },
 
@@ -505,7 +541,7 @@ const OrderDetail = Form.create()(
       this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
       this.setState({
         previewImage: this.state.previewImage,
-        rotateDeg: 0
+        rotateDeg: 0,
       });
     },
     upImg() {
@@ -521,13 +557,13 @@ const OrderDetail = Form.create()(
       this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
       this.setState({
         previewImage: this.state.previewImage,
-        rotateDeg: 0
+        rotateDeg: 0,
       });
     },
     rotate() {
       let rotateDeg = this.state.rotateDeg + 90;
       this.setState({
-        rotateDeg
+        rotateDeg,
       });
     },
     downImgs() {
@@ -543,7 +579,7 @@ const OrderDetail = Form.create()(
       this.state.previewImage = this.state.replenishUrl[num + 1].url;
       this.setState({
         previewImage: this.state.previewImage,
-        rotateDeg: 0
+        rotateDeg: 0,
       });
     },
     upImgs() {
@@ -559,13 +595,13 @@ const OrderDetail = Form.create()(
       this.state.previewImage = this.state.replenishUrl[num - 1].url;
       this.setState({
         previewImage: this.state.previewImage,
-        rotateDeg: 0
+        rotateDeg: 0,
       });
     },
     rotates() {
       let rotateDeg = this.state.rotateDeg + 90;
       this.setState({
-        rotateDeg
+        rotateDeg,
       });
     },
     //节点列表
@@ -576,9 +612,9 @@ const OrderDetail = Form.create()(
         crossDomain: false,
         url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
         data: {
-          orderNo: orderNos
+          orderNo: orderNos,
         },
-        success: function(data) {
+        success: function (data) {
           let theArr = [];
           let thisData = [];
           if (data.error.length || data.data.list == "") {
@@ -596,18 +632,18 @@ const OrderDetail = Form.create()(
                 id: thisData.id, //节点Id
                 money: thisData.money, //催款金额
                 dunStatus: thisData.dunStatus, //催款状态
-                orderNo: thisData.orderNo
+                orderNo: thisData.orderNo,
               });
             }
             this.setState({
-              contactList: theArr
+              contactList: theArr,
             });
           }
-        }.bind(this)
+        }.bind(this),
       }).always(
-        function() {
+        function () {
           this.setState({
-            loading: false
+            loading: false,
           });
         }.bind(this)
       );
@@ -621,9 +657,9 @@ const OrderDetail = Form.create()(
         url:
           globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
         data: {
-          orderNo: orderNos
+          orderNo: orderNos,
         },
-        success: function(data) {
+        success: function (data) {
           if (data.error && data.error.length) {
             message.warning(data.error[0].message);
           } else {
@@ -662,14 +698,14 @@ const OrderDetail = Form.create()(
             totalCui = (Math.round(totalCui * 10000) / 10000).toFixed(4);
             this.setState({
               contactListNew: theArr,
-              totalCui
+              totalCui,
             });
           }
-        }.bind(this)
+        }.bind(this),
       }).always(
-        function() {
+        function () {
           this.setState({
-            loading: false
+            loading: false,
           });
         }.bind(this)
       );
@@ -679,7 +715,7 @@ const OrderDetail = Form.create()(
       const FormItem = Form.Item;
       const formItemLayout = {
         labelCol: { span: 10 },
-        wrapperCol: { span: 12 }
+        wrapperCol: { span: 12 },
       };
       const jsDate = this.state.jsDate || [];
       const cuiDataList = this.state.contactList || [];
@@ -795,10 +831,10 @@ const OrderDetail = Form.create()(
                     className="demandDetailShow-upload"
                     listType="picture-card"
                     fileList={this.state.orgCodeUrl}
-                    onPreview={file => {
+                    onPreview={(file) => {
                       this.setState({
                         previewImage: file.url || file.thumbUrl,
-                        previewVisible: true
+                        previewVisible: true,
                       });
                     }}
                   ></Upload>
@@ -899,48 +935,48 @@ const OrderDetail = Form.create()(
                       alt=""
                       style={{
                         width: "100%",
-                        transform: `rotate(${this.state.rotateDeg}deg)`
+                        transform: `rotate(${this.state.rotateDeg}deg)`,
                       }}
                       src={this.state.previewImage || ""}
                     />
                     <Button
-                onClick={this.rotate}
-                style={{
-                  position: "relative",
-                  left: "50%",
-                  transform: "translateX(-50%)",
-                }}
-              >
-                旋转
-              </Button>
-              <Button
-                onClick={this.upImg}
-                style={{
-                  position: "absolute",
-                  left: -81,
-                  top: "50%",
-                  transform: "translateY(-50%)",
-                }}
-              >
-                上一张
-              </Button>
-              <Button
-                onClick={this.downImg}
-                style={{
-                  position: "absolute",
-                  right: -81,
-                  top: "50%",
-                  transform: "translateY(-50%)",
-                }}
-              >
-                下一张
-              </Button>
+                      onClick={this.rotate}
+                      style={{
+                        position: "relative",
+                        left: "50%",
+                        transform: "translateX(-50%)",
+                      }}
+                    >
+                      旋转
+                    </Button>
+                    <Button
+                      onClick={this.upImg}
+                      style={{
+                        position: "absolute",
+                        left: -81,
+                        top: "50%",
+                        transform: "translateY(-50%)",
+                      }}
+                    >
+                      上一张
+                    </Button>
+                    <Button
+                      onClick={this.downImg}
+                      style={{
+                        position: "absolute",
+                        right: -81,
+                        top: "50%",
+                        transform: "translateY(-50%)",
+                      }}
+                    >
+                      下一张
+                    </Button>
                   </Modal>
                   <Button
                     style={{
                       float: "right",
                       marginRight: "140px",
-                      marginTop: "20px"
+                      marginTop: "20px",
                     }}
                     onClick={this.getOrderLog}
                   >
@@ -956,10 +992,10 @@ const OrderDetail = Form.create()(
                     className="demandDetailShow-upload"
                     listType="picture-card"
                     fileList={this.state.replenishUrl}
-                    onPreview={file => {
+                    onPreview={(file) => {
                       this.setState({
                         previewImage: file.url || file.thumbUrl,
-                        previewVisibles: true
+                        previewVisibles: true,
                       });
                     }}
                   ></Upload>
@@ -1060,42 +1096,42 @@ const OrderDetail = Form.create()(
                       alt=""
                       style={{
                         width: "100%",
-                        transform: `rotate(${this.state.rotateDeg}deg)`
+                        transform: `rotate(${this.state.rotateDeg}deg)`,
                       }}
                       src={this.state.previewImage || ""}
                     />
                     <Button
-                onClick={this.rotates}
-                style={{
-                  position: "relative",
-                  left: "50%",
-                  transform: "translateX(-50%)",
-                }}
-              >
-                旋转
-              </Button>
-              <Button
-                onClick={this.upImgs}
-                style={{
-                  position: "absolute",
-                  left: -81,
-                  top: "50%",
-                  transform: "translateY(-50%)",
-                }}
-              >
-                上一张
-              </Button>
-              <Button
-                onClick={this.downImgs}
-                style={{
-                  position: "absolute",
-                  right: -81,
-                  top: "50%",
-                  transform: "translateY(-50%)",
-                }}
-              >
-                下一张
-              </Button>
+                      onClick={this.rotates}
+                      style={{
+                        position: "relative",
+                        left: "50%",
+                        transform: "translateX(-50%)",
+                      }}
+                    >
+                      旋转
+                    </Button>
+                    <Button
+                      onClick={this.upImgs}
+                      style={{
+                        position: "absolute",
+                        left: -81,
+                        top: "50%",
+                        transform: "translateY(-50%)",
+                      }}
+                    >
+                      上一张
+                    </Button>
+                    <Button
+                      onClick={this.downImgs}
+                      style={{
+                        position: "absolute",
+                        right: -81,
+                        top: "50%",
+                        transform: "translateY(-50%)",
+                      }}
+                    >
+                      下一张
+                    </Button>
                   </Modal>
                 </FormItem>
               </div>
@@ -1243,6 +1279,81 @@ const OrderDetail = Form.create()(
                   </Spin>
                 </div>
               </div>
+              <Modal
+                maskClosable={false}
+                visible={this.state.addnextVisible}
+                onOk={this.nextCancel}
+                onCancel={this.nextCancel}
+                confirmLoading={this.state.confirmLoading}
+                width="800px"
+                title={"项目任务详情"}
+                footer=""
+                className="admin-desc-content"
+              >
+                <Form layout="horizontal" id="demand-form">
+                  <Spin spinning={this.state.loading}>
+                    <div className="clearfix">
+                      <FormItem
+                        className="half-item"
+                        {...formItemLayout}
+                        label="项目名称"
+                      >
+                        <span>{this.state.commodityName}</span>
+                      </FormItem>
+                      <FormItem
+                        className="half-item"
+                        {...formItemLayout}
+                        label="项目数量"
+                      >
+                        <span>{this.state.commodityQuantity}</span>
+                      </FormItem>
+                      <FormItem
+                        className="half-item"
+                        {...formItemLayout}
+                        label="官费"
+                        style={{ display: this.state.displayFees }}
+                      >
+                        <span>
+                          {this.state.officialCost == 0 ? "无官费" : "有官费"}
+                        </span>
+                      </FormItem>
+                      <FormItem
+                        className="half-item"
+                        {...formItemLayout}
+                        label="费减"
+                        style={{ display: this.state.displayFees }}
+                      >
+                        <span>
+                          {this.state.costReduction == 0 ? "无费减" : "有费减"}
+                        </span>
+                      </FormItem>
+                      <FormItem
+                        className="half-item"
+                        {...formItemLayout}
+                        label="金额(万元)"
+                      >
+                        <span>{this.state.commodityPrice}</span>
+                      </FormItem>
+                      <FormItem
+                        className="half-item"
+                        {...formItemLayout}
+                        label="主要项目"
+                      >
+                        <span>{getboutique(this.state.main)}</span>
+                      </FormItem>
+                      <div className="clearfix">
+                        <FormItem
+                          labelCol={{ span: 4 }}
+                          wrapperCol={{ span: 16 }}
+                          label="服务说明"
+                        >
+                          <span>{this.state.taskComment}</span>
+                        </FormItem>
+                      </div>
+                    </div>
+                  </Spin>
+                </Form>
+              </Modal>
               <div>
                 <span style={{ marginLeft: 20, fontSize: "18px" }}>
                   催款节点
@@ -1251,7 +1362,7 @@ const OrderDetail = Form.create()(
                   style={{
                     display: cuiDataList.length ? "none" : "inline-block",
                     marginLeft: 10,
-                    color: "red"
+                    color: "red",
                   }}
                 >
                   金额总计(万元): {this.state.totalCui}
@@ -1287,7 +1398,7 @@ const OrderDetail = Form.create()(
           </Form>
         </div>
       );
-    }
+    },
   })
 );
 export default OrderDetail;

+ 161 - 8
js/component/manageCenter/order/orderNew/addService.jsx

@@ -14,7 +14,9 @@ import {
   DatePicker,
   Col,
   Tabs,
-  Tag
+  Tag,
+  Radio,
+  Group,
 } from "antd";
 import $ from "jquery/src/ajax";
 import "../userMangagement.less";
@@ -93,6 +95,9 @@ const NewService = Form.create()(
                 projectStatus: thisdata.projectStatus, //项目状态
                 sort: thisdata.cSort,
                 splitStatus: thisdata.splitStatus,
+                type: thisdata.type,
+                officialCost: thisdata.officialCost,
+                costReduction: thisdata.costReduction,
               });
             }
           }
@@ -2391,6 +2396,9 @@ const NewService = Form.create()(
       this.setState({
         addnextVisible: false,
         changeVisible: false,
+        displayFees: "none",
+        officialCost: "", //是否有官费
+        costReduction: "", //是否有费减
       });
     },
 
@@ -2773,8 +2781,18 @@ const NewService = Form.create()(
       fwList.map(function (item) {
         if (value == item.bname) {
           kid = item;
+          console.log(item);
         }
       });
+      if (kid.type == "1") {
+        this.setState({
+          displayFees: "block",
+        });
+      } else {
+        this.setState({
+          displayFees: "none",
+        });
+      }
       this.setState({
         commodityName: value,
         gid: kid.id,
@@ -2865,6 +2883,9 @@ const NewService = Form.create()(
         commodityPrice: "",
         addState: 1,
         addnextVisible: true,
+        displayFees: "none",
+        officialCost: "",
+        costReduction: "",
       });
     },
     //新建项目明细保存
@@ -2874,6 +2895,16 @@ const NewService = Form.create()(
         message.warning("服务名称不匹配!");
         return false;
       }
+      if (this.state.displayFees=='block') {
+        if(this.state.officialCost==''){
+          message.warning("请选择官费!");
+          return false;
+        }
+        if (this.state.costReduction == "") {
+          message.warning("请选择费减!");
+          return false;
+        }
+      }
       if (!this.state.commodityPrice) {
         message.warning("请输入金额!");
         this.refs.commodityPrice.focus();
@@ -2912,6 +2943,8 @@ const NewService = Form.create()(
           commodityPrice: this.state.commodityPrice, //签单总价
           taskComment: this.state.taskComment, //服务说明
           main: this.state.main, //是否为主要项目
+          officialCost: this.state.officialCost, //是否有官费
+          costReduction: this.state.costReduction, //是否有费减
         },
       }).done(
         function (data) {
@@ -2931,6 +2964,15 @@ const NewService = Form.create()(
     },
     //点击打卡项目详情
     tableRowClick(record) {
+      console.log(record);
+      if (record.type=='1'){
+        console.log(record.officialCost);
+        this.setState({
+          displayFees: "block",
+          costReduction: record.costReduction,
+          officialCost: record.officialCost,
+        });
+      }
       this.setState({
         jid: record.id, //项目ID
         kid: record.commodityId, //商品ID
@@ -2939,8 +2981,8 @@ const NewService = Form.create()(
         commodityQuantity: record.commodityQuantity, //数量
         taskComment: record.taskComment, //备注
         main: record.main.toString(), //是否为主要
-        addnextVisible: true,
         addState: 0,
+        addnextVisible: true,
       });
     },
     //修改项目详情
@@ -2976,6 +3018,8 @@ const NewService = Form.create()(
           commodityPrice: this.state.commodityPrice, //金额
           commodityQuantity: this.state.commodityQuantity, //数量
           taskComment: this.state.taskComment, //备注
+          officialCost: this.state.officialCost, //是否有官费
+          costReduction: this.state.costReduction, //是否有费减
         },
       }).done(
         function (data) {
@@ -4783,11 +4827,7 @@ const NewService = Form.create()(
                                 <FormItem
                                   labelCol={{ span: 4 }}
                                   wrapperCol={{ span: 18 }}
-                                  label={
-                                    <span>
-                                      补充协议
-                                    </span>
-                                  }
+                                  label={<span>补充协议</span>}
                                 >
                                   <PicturesWall
                                     fileList={this.getReplenishUrl}
@@ -4949,7 +4989,6 @@ const NewService = Form.create()(
                                       下一张
                                     </Button>
                                   </Modal>
-                                  
                                 </FormItem>
                               </div>
                             )}
@@ -6099,6 +6138,52 @@ const NewService = Form.create()(
                     </FormItem>
                     <FormItem
                       className="half-item"
+                      labelCol={{ span: 3 }}
+                      wrapperCol={{ span: 14 }}
+                      label="官费:"
+                      style={{
+                        display: this.state.displayFees,
+                        marginLeft: "55px",
+                      }}
+                    >
+                      <span style={{ color: "red", marginRight: "27px" }}>
+                        *
+                      </span>
+                      <Radio.Group
+                        value={this.state.officialCost}
+                        onChange={(e) => {
+                          this.setState({ officialCost: e.target.value });
+                        }}
+                      >
+                        <Radio value="1">含官费</Radio>
+                        <Radio value="0">不含官费</Radio>
+                      </Radio.Group>
+                    </FormItem>
+                    <FormItem
+                      className="half-item"
+                      labelCol={{ span: 3 }}
+                      wrapperCol={{ span: 14 }}
+                      label="费减:"
+                      style={{
+                        display: this.state.displayFees,
+                        marginLeft: "55px",
+                      }}
+                    >
+                      <span style={{ color: "red", marginRight: "27px" }}>
+                        *
+                      </span>
+                      <Radio.Group
+                        value={this.state.costReduction}
+                        onChange={(e) => {
+                          this.setState({ costReduction: e.target.value });
+                        }}
+                      >
+                        <Radio value="1">有费减</Radio>
+                        <Radio value="0">无费减</Radio>
+                      </Radio.Group>
+                    </FormItem>
+                    <FormItem
+                      className="half-item"
                       {...formItemLayout}
                       label="实签价格(万元)"
                     >
@@ -6202,6 +6287,52 @@ const NewService = Form.create()(
                         </FormItem>
                         <FormItem
                           className="half-item"
+                          labelCol={{ span: 3 }}
+                          wrapperCol={{ span: 14 }}
+                          label="官费:"
+                          style={{
+                            display: this.state.displayFees,
+                            marginLeft: "55px",
+                          }}
+                        >
+                          <span style={{ color: "red", marginRight: "27px" }}>
+                            *
+                          </span>
+                          <Radio.Group
+                            value={this.state.officialCost}
+                            onChange={(e) => {
+                              this.setState({ officialCost: e.target.value });
+                            }}
+                          >
+                            <Radio value={1}>含官费</Radio>
+                            <Radio value={0}>不含官费</Radio>
+                          </Radio.Group>
+                        </FormItem>
+                        <FormItem
+                          className="half-item"
+                          labelCol={{ span: 3 }}
+                          wrapperCol={{ span: 14 }}
+                          label="费减:"
+                          style={{
+                            display: this.state.displayFees,
+                            marginLeft: "55px",
+                          }}
+                        >
+                          <span style={{ color: "red", marginRight: "27px" }}>
+                            *
+                          </span>
+                          <Radio.Group
+                            value={this.state.costReduction}
+                            onChange={(e) => {
+                              this.setState({ costReduction: e.target.value });
+                            }}
+                          >
+                            <Radio value={1}>有费减</Radio>
+                            <Radio value={0}>无费减</Radio>
+                          </Radio.Group>
+                        </FormItem>
+                        <FormItem
+                          className="half-item"
                           {...formItemLayout}
                           label="金额(万元)"
                         >
@@ -6293,6 +6424,28 @@ const NewService = Form.create()(
                         <FormItem
                           className="half-item"
                           {...formItemLayout}
+                          label="官费"
+                          style={{ display: this.state.displayFees }}
+                        >
+                          <span>
+                            {this.state.officialCost == 0 ? "无官费" : "有官费"}
+                          </span>
+                        </FormItem>
+                        <FormItem
+                          className="half-item"
+                          {...formItemLayout}
+                          label="费减"
+                          style={{ display: this.state.displayFees }}
+                        >
+                          <span>
+                            {this.state.costReduction == 0
+                              ? "无费减"
+                              : "有费减"}
+                          </span>
+                        </FormItem>
+                        <FormItem
+                          className="half-item"
+                          {...formItemLayout}
                           label="金额(万元)"
                         >
                           <span>{this.state.commodityPrice}</span>

+ 12 - 5
js/component/manageCenter/order/orderNew/changeComponent/changeApply.js

@@ -1209,7 +1209,11 @@ class ChangeApply extends Component {
           appropriationRatio: record.appropriationRatio,
           waitDay: record.waitDay,
           effectiveCount: record.effectiveCount,
-          cid: this.state.data.id //变更ID
+          cid: this.state.data.id, //变更ID
+          ustomizeTimes:
+              record.dunType == 0 ? record.customizeTimes : undefined,
+            customizeName:
+              record.dunType == 0 ? record.customizeName : undefined,
         }
       }).done(
         function (data) {
@@ -1241,19 +1245,22 @@ class ChangeApply extends Component {
           money: record.money,
           waitDay: record.waitDay,
           effectiveCount: record.effectiveCount,
-          cid: this.state.data.id //变更ID
-        }
+          cid: this.state.data.id, //变更ID
+          ustomizeTimes:
+            record.dunType == 0 ? record.customizeTimes : undefined,
+          customizeName: record.dunType == 0 ? record.customizeName : undefined, 
+        },
       }).done(
         function (data) {
           this.setState({
-            loading: false
+            loading: false,
           });
           if (!data.error.length) {
             message.success("保存成功!");
             this.setState({
               cuiFlag: false,
               boFlag: false,
-              addFlag: false
+              addFlag: false,
             });
             this.cuiList();
           } else {

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

@@ -507,6 +507,13 @@ const IntentionCustomer = Form.create()(
     },
     //点击打卡项目详情
     tableRowClickX(record) {
+      if (record.type == "1") {
+        this.setState({
+          displayFees: "block",
+          costReduction: record.costReduction,
+          officialCost: record.officialCost,
+        });
+      }
       this.setState({
         jid: record.id, //项目ID
         kid: record.commodityId, //商品ID
@@ -523,6 +530,9 @@ const IntentionCustomer = Form.create()(
     nextCancel() {
       this.setState({
         addnextVisible: false,
+        displayFees: "none",
+        officialCost: "", //是否有官费
+        costReduction: "", //是否有费减
       });
     },
     //订单详情
@@ -629,6 +639,9 @@ const IntentionCustomer = Form.create()(
                 projectStatus: thisdata.projectStatus, //项目状态
                 sort: thisdata.cSort,
                 splitStatus: thisdata.splitStatus,
+                officialCost: thisdata.officialCost,
+                costReduction: thisdata.costReduction,
+                type: thisdata.type,
               });
             }
           }
@@ -1577,7 +1590,10 @@ const IntentionCustomer = Form.create()(
                                 width={"50%"}
                                 visible={this.state.previewVisible}
                                 onCancel={() => {
-                                  this.setState({ previewVisible: false,rotateDeg: 0, });
+                                  this.setState({
+                                    previewVisible: false,
+                                    rotateDeg: 0,
+                                  });
                                 }}
                               >
                                 <img
@@ -1654,7 +1670,10 @@ const IntentionCustomer = Form.create()(
                                 width={"50%"}
                                 visible={this.state.previewVisibles}
                                 onCancel={() => {
-                                  this.setState({ previewVisibles: false,rotateDeg: 0 });
+                                  this.setState({
+                                    previewVisibles: false,
+                                    rotateDeg: 0,
+                                  });
                                 }}
                               >
                                 <img
@@ -2091,6 +2110,26 @@ const IntentionCustomer = Form.create()(
                     <FormItem
                       className="half-item"
                       {...formItemLayout}
+                      label="官费"
+                      style={{ display: this.state.displayFees }}
+                    >
+                      <span>
+                        {this.state.officialCost == 0 ? "无官费" : "有官费"}
+                      </span>
+                    </FormItem>
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
+                      label="费减"
+                      style={{ display: this.state.displayFees }}
+                    >
+                      <span>
+                        {this.state.costReduction == 0 ? "无费减" : "有费减"}
+                      </span>
+                    </FormItem>
+                    <FormItem
+                      className="half-item"
+                      {...formItemLayout}
                       label="金额(万元)"
                     >
                       <span>{this.state.commodityPrice}</span>

+ 48 - 15
js/component/manageCenter/project/project/projectAssignment.jsx

@@ -536,7 +536,10 @@ const PaiDan = React.createClass({
               contacts: thisdata.contacts, //联系人
               contactsMobile: thisdata.contactsMobile, //联系人电话
               taskStatus: thisdata.taskStatus, //是否分配
-              splitStatus: thisdata.splitStatus
+              splitStatus: thisdata.splitStatus,
+              officialCost: thisdata.officialCost,
+              costReduction: thisdata.costReduction,
+              type: thisdata.type,
             });
           }
         }
@@ -870,11 +873,21 @@ const PaiDan = React.createClass({
   nextCancel() {
     this.setState({
       addserviceVisible: false,
-      addnextVisible: false
+      displayFees: "none",
+      officialCost: "", //是否有官费
+      costReduction: "", //是否有费减
+      addnextVisible: false,
     });
   },
   //点击打卡项目详情
   tableRowClickX(record) {
+    if (record.type == "1") {
+      this.setState({
+        displayFees: "block",
+        costReduction: record.costReduction,
+        officialCost: record.officialCost,
+      });
+    }
     this.setState({
       jid: record.id, //项目ID
       kid: record.commodityId, //商品ID
@@ -998,14 +1011,14 @@ const PaiDan = React.createClass({
                 placeholder="客户名称"
                 value={this.state.customerName}
                 style={{ marginLeft: 10 }}
-                onChange={e => {
+                onChange={(e) => {
                   this.setState({ customerName: e.target.value });
                 }}
               />
               <Input
                 placeholder="订单编号"
                 value={this.state.orderNoSearch}
-                onChange={e => {
+                onChange={(e) => {
                   this.setState({ orderNoSearch: e.target.value });
                 }}
               />
@@ -1013,18 +1026,18 @@ const PaiDan = React.createClass({
                 placeholder="选择部门"
                 style={{ width: 150, marginRight: "10px" }}
                 value={this.state.departmenttSearch}
-                onChange={e => {
+                onChange={(e) => {
                   this.setState({ departmenttSearch: e });
                 }}
               >
-                {departmentArr.map(function(item) {
+                {departmentArr.map(function (item) {
                   return (
                     <Select.Option key={item.id}>{item.name}</Select.Option>
                   );
                 })}
               </Select>
               <Select
-                onChange={e => {
+                onChange={(e) => {
                   this.setState({ distribution: e });
                 }}
                 style={{ width: 160, marginRight: 5 }}
@@ -1058,7 +1071,7 @@ const PaiDan = React.createClass({
                       : null,
                     this.state.releaseDate[1]
                       ? moment(this.state.releaseDate[1])
-                      : null
+                      : null,
                   ]}
                   onChange={(data, dataString) => {
                     this.setState({ releaseDate: dataString });
@@ -1225,7 +1238,7 @@ const PaiDan = React.createClass({
                     style={{
                       float: "right",
                       marginRight: "140px",
-                      marginTop: "20px"
+                      marginTop: "20px",
                     }}
                     onClick={this.getOrderLog}
                   >
@@ -1369,6 +1382,26 @@ const PaiDan = React.createClass({
                 <FormItem
                   className="half-item"
                   {...formItemLayout}
+                  label="官费"
+                  style={{ display: this.state.displayFees }}
+                >
+                  <span>
+                    {this.state.officialCost == 0 ? "无官费" : "有官费"}
+                  </span>
+                </FormItem>
+                <FormItem
+                  className="half-item"
+                  {...formItemLayout}
+                  label="费减"
+                  style={{ display: this.state.displayFees }}
+                >
+                  <span>
+                    {this.state.costReduction == 0 ? "无费减" : "有费减"}
+                  </span>
+                </FormItem>
+                <FormItem
+                  className="half-item"
+                  {...formItemLayout}
                   label="金额(万元)"
                 >
                   <span>{this.state.commodityPrice}</span>
@@ -1438,7 +1471,7 @@ const PaiDan = React.createClass({
                     placeholder="请输入服务数量"
                     style={{ width: "200px" }}
                     value={this.state.commodityQuantity}
-                    onChange={e => {
+                    onChange={(e) => {
                       this.setState({ commodityQuantity: e.target.value });
                     }}
                     ref="commodityQuantity"
@@ -1455,7 +1488,7 @@ const PaiDan = React.createClass({
                     placeholder="请输入实签价格"
                     style={{ width: "200px" }}
                     value={this.state.commodityPrice}
-                    onChange={e => {
+                    onChange={(e) => {
                       this.setState({ commodityPrice: e.target.value });
                     }}
                     ref="commodityPrice"
@@ -1471,11 +1504,11 @@ const PaiDan = React.createClass({
                     placeholder="选择是否为主要业务"
                     style={{ width: "200px" }}
                     value={this.state.main}
-                    onChange={e => {
+                    onChange={(e) => {
                       this.setState({ main: e });
                     }}
                   >
-                    {boutique.map(function(item) {
+                    {boutique.map(function (item) {
                       return (
                         <Select.Option key={item.value}>
                           {item.key}
@@ -1495,7 +1528,7 @@ const PaiDan = React.createClass({
                       type="textarea"
                       placeholder="请输入服务说明"
                       value={this.state.taskComment}
-                      onChange={e => {
+                      onChange={(e) => {
                         this.setState({ taskComment: e.target.value });
                       }}
                     />
@@ -1547,7 +1580,7 @@ const PaiDan = React.createClass({
                     placeholder="请输入拒绝理由"
                     rows={4}
                     value={this.state.reason}
-                    onChange={e => {
+                    onChange={(e) => {
                       this.setState({ reason: e.target.value });
                     }}
                   />

+ 618 - 64
js/component/manageCenter/project/task/myTask.jsx

@@ -21,8 +21,10 @@ import {
   Popconfirm,
   Switch,
   Tabs,
+  Col,
   Icon,
   Upload,
+  AutoComplete,
   Tag
 } from "antd";
 import Assign from "@/manageCenter/publicComponent/assign";
@@ -205,11 +207,19 @@ const Task = React.createClass({
   },
   getInitialState() {
     return {
+      thirdCompanyName: "",
+      thirdUnitPrice: "",
+      thirdQuantity: 1,
+      thirdRemarks: "",
+      customerArr: [],
+      currentTotalPrice: 0, //当前修改页面的总价
+      saveThirdList: [],
       orderData: [],
       orderNo: "",
       jiedian: [],
       jiedianNew: [],
       timeVisible: false,
+      ThirdListVisible: false,
       searchMore: true,
       assignVisible: false,
       releaseDate: [],
@@ -607,6 +617,87 @@ const Task = React.createClass({
           },
         },
       ],
+      // 专利
+      ContactsListsNew: [
+        {
+          title: "供应商名称",
+          dataIndex: "companyName",
+          key: "companyName",
+          render: (text, record, index) => {
+            if (text) {
+              return <span>{text}</span>;
+            }
+          },
+        },
+        {
+          title: "单价(万元)",
+          dataIndex: "unitPrice",
+          key: "unitPrice",
+          render: (text, record) => {
+            if (text) {
+              return <span>{text}</span>;
+            }
+          },
+        },
+        {
+          title: "数量",
+          dataIndex: "quantity",
+          key: "quantity",
+          render: (text, record) => {
+            if (text) {
+              return <span>{text}</span>;
+            }
+          },
+        },
+        {
+          title: "总价",
+          dataIndex: "totalAmount",
+          key: "totalAmount",
+          render: (text, record) => {
+            if (text) {
+              return <span>{text}</span>;
+            }
+          },
+        },
+        {
+          title: "备注",
+          dataIndex: "remarks",
+          key: "remarks",
+        },
+        {
+          title: "操作",
+          dataIndex: "dels",
+          key: "dels",
+          render: (text, record, index) => {
+            return (
+              <div>
+                <Popconfirm
+                  title="是否删除?"
+                  onConfirm={() => {
+                    this.confirmDeletNew(record);
+                  }}
+                  okText="删除"
+                  cancelText="不删除"
+                >
+                  <Button
+                    onClick={(e) => {
+                      e.stopPropagation();
+                    }}
+                    style={{
+                      marginRight: "10px",
+                      color: "#ffffff",
+                      background: "#f00",
+                      border: "none",
+                    }}
+                  >
+                    删除
+                  </Button>
+                </Popconfirm>
+              </div>
+            );
+          },
+        },
+      ],
     };
   },
   /* 分派 */
@@ -673,6 +764,8 @@ const Task = React.createClass({
     this.xiangqings(record.orderNo);
     this.xiangmu(record.orderNo);
     this.loaduserss(record);
+    // 获取第三方信息表格
+    this.thirdTable(record.id);
   },
   //点击修改项目详情
   tijiaoOk() {
@@ -937,11 +1030,17 @@ const Task = React.createClass({
               contractNo: thisdata.contractNo, //合同编号
               certificateNumber: thisdata.certificateNumber,
               splitStatus: thisdata.splitStatus,
+              officialCost: thisdata.officialCost,
+              costReduction: thisdata.costReduction,
+              type: thisdata.type,
+              cSort: thisdata.cSort,
             });
           }
         }
         this.setState({
           dataSourceX: theArr,
+          type: theArr[0].type,
+          cSort: theArr[0].cSort,
         });
       }.bind(this),
     }).always(
@@ -1048,6 +1147,7 @@ const Task = React.createClass({
           }
           this.setState({
             contactList: theArr,
+            tid: record.id,
           });
         }
       }.bind(this),
@@ -1213,10 +1313,20 @@ const Task = React.createClass({
   nextCancel() {
     this.setState({
       addnextVisible: false,
+      displayFees: "none",
+      officialCost: "", //是否有官费
+      costReduction: "", //是否有费减
     });
   },
   //点击打卡项目详情
   tableRowClickX(record) {
+    if (record.type == "1") {
+      this.setState({
+        displayFees: "block",
+        costReduction: record.costReduction,
+        officialCost: record.officialCost,
+      });
+    }
     this.setState({
       jid: record.id, //项目ID
       kid: record.commodityId, //商品ID
@@ -1400,21 +1510,25 @@ const Task = React.createClass({
   },
   // 项目发起外包
   sureOut() {
-    if (!this.state.companyName) {
-      message.warning("公司名称不能为空");
+    if (!this.state.startType) {
+      message.warning("请选择类型");
       return;
     }
-    if (!this.state.unitPrice) {
-      message.warning("单价不能为空");
-      return;
-    }
-    if (!this.state.unitNumber) {
-      message.warning("数量不能为空");
-      return;
-    }
-    if (!this.state.amount) {
-      message.warning("总金额不能为空");
-      return;
+    if (this.state.type == 1) {//专利
+      if (!this.state.patentType) {
+        message.warning("请选择专利类型");
+        return;
+      }
+      if (!this.state.patentNameType) {
+        message.warning("请选择专利类型名称");
+        return;
+      }
+      if (this.state.patentNameType==3) {
+        if (!this.state.patentName) {
+          message.warning("请填写专利名称");
+          return;
+        }
+      }
     }
     if (!this.state.outsourceRemarks) {
       message.warning("备注不能为空");
@@ -1510,6 +1624,10 @@ const Task = React.createClass({
         });
         if (!data.error.length && data.data) {
           this.setState({
+            startType: data.data.startType, //类型
+            patentType: data.data.patentType, //专利类型
+            patentNameType: data.data.patentNameType, //专利名称类型
+            patentName: data.data.patentName, //专利名称
             outsourceRemarks: data.data.outsourceRemarks,
             remarks: data.data.remarks,
             companyName: data.data.companyName,
@@ -1604,7 +1722,7 @@ const Task = React.createClass({
       this.jiedianNew(this.state.orderNo);
     }
     if (key == 2) {
-      this.waiDetail()
+      this.waiDetail();
     }
   },
   //节点列表
@@ -1746,7 +1864,239 @@ const Task = React.createClass({
       }.bind(this),
     });
   },
+  //点击新增供应商
+  addcontactNew() {
+    this.state.contactListNew.push({
+      key: this.state.contactListNew.length,
+      money: "",
+      dunSubject: undefined,
+      orderNo: this.state.orderNo,
+      dunTarget: this.state.kehuId,
+    });
+    this.setState({
+      contactListNew: this.state.contactListNew,
+      cuiFlag: true,
+    });
+  },
+  //查看第三方信息表格
+  thirdTable(id) {
+    this.setState({
+      loadData: true,
+    });
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/company/selectCompany",
+      data: {
+        tid: id,
+      },
+      success: function (data) {
+        if (data.error && data.error.length) {
+          message.warning(data.error[0].message);
+        } else {
+          let theArr = [];
+          let thisData = [];
+          let arr = data.data || [];
+          let allTotalAmount = 0;
+          for (let i = 0; i < arr.length; i++) {
+            thisData = arr[i];
+            allTotalAmount += +thisData.totalAmount;
+            theArr.push({
+              key: i,
+              id: thisData.id, //节点Id
+              tid: thisData.tid,
+              companyName: thisData.companyName, //供应商名称
+              unitPrice: thisData.unitPrice, //单价
+              quantity: thisData.quantity, //数量
+              totalAmount: thisData.totalAmount, //总价
+              material: thisData.material, //材料 0无 1有
+              urgent: thisData.urgent, //	0无加急(系统默认)1加急3天 2加急4天 3加急5-10天 4加急11-15天 5加急16-20天 6加急21-25天 7加急26-30天
+              audit: thisData.audit, //0无审计 1年审 2专审
+              assets: thisData.assets, //资产
+              income: thisData.income, //收入
+              remarks: thisData.remarks, //备注
+              cid: thisData.cid, //机构id
+            });
+          }
+          if (!allTotalAmount) {
+            allTotalAmount = 0;
+          }
+          console.log(theArr);
+          this.setState({
+            tid: id,
+            thirdInfoList: theArr,
+            allTotalAmount: allTotalAmount,
+          });
+        }
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  },
+  // 新增第三方供应商信息
+  addThirdList() {
+    this.setState({
+      ThirdListVisible: true,
+    });
+  },
+  // 自动计算总金额
+  calculatedAmount() {
+    let currentTotalPrice;
+    currentTotalPrice = this.state.thirdUnitPrice * this.state.thirdQuantity;
+    currentTotalPrice = currentTotalPrice.toFixed(4);
+    this.setState({
+      currentTotalPrice: currentTotalPrice,
+    });
+  },
+  //服务值改变时请求供应商名称
+  httpChange(e) {
+    if (e.length >= 1) {
+      this.supervisor(e);
+    }
+    this.setState({
+      thirdCompanyName: e,
+    });
+  },
+  //加载(自动补全)
+  supervisor(e) {
+    $.ajax({
+      method: "get",
+      dataType: "json",
+      crossDomain: false,
+      url: globalConfig.context + "/api/admin/company/selectVague",
+      data: { name: e },
+      success: function (data) {
+        let thedata = data.data;
+        if (!thedata) {
+          if (data.error && data.error.length) {
+            message.warning(data.error[0].message);
+          }
+          thedata = {};
+        }
+        this.setState({
+          customerArr: thedata,
+        });
+      }.bind(this),
+    }).always(
+      function () {
+        this.setState({
+          loading: false,
+        });
+      }.bind(this)
+    );
+  },
+  // 保存供应商信息
+  handleCancelq() {
+    let api
+    if(this.state.ThirdId){//修改
+      api='/api/admin/company/updateCompany'
+    }else{//新增
+      api='/api/admin/company/addCompany'
+    }
+    this.setState({
+      loading: true,
+    });
+    $.ajax({
+      url: globalConfig.context + api,
+      method: "post",
+      dataType: "json",
+      crossDomain: false,
+      data: {
+        id:this.state.ThirdId,//id
+        tid: this.state.tid, //订单编号
+        companyName: this.state.thirdCompanyName, //第三方名称
+        unitPrice: this.state.thirdUnitPrice, //单价
+        quantity: this.state.thirdQuantity, //数量
+        totalAmount: this.state.currentTotalPrice, //总价
+        remarks: this.state.thirdRemarks,
+      },
+    }).done(
+      function (data) {
+        this.setState({
+          loading: false,
+        });
+        if (!data.error.length) {
+          message.success("保存成功!");
+          this.setState({
+            ThirdId:"",
+            ThirdListVisible: false,
+            thirdCompanyName: "", //第三方名称
+            thirdUnitPrice: "", //单价
+            thirdQuantity: "", //数量
+            currentTotalPrice: "", //总价
+            thirdRemarks: "",
+          });
+          // this.visitCancel();
+          this.thirdTable(this.state.tid);
+        } else {
+          message.warning(data.error[0].message);
+        }
+      }.bind(this)
+    );
+  },
+  // 取消
+  handleCancelclose() {
+    this.setState({
+      ThirdListVisible: false,
+      thirdCompanyName: "", //第三方名称
+      thirdUnitPrice: "", //单价
+      thirdQuantity: 1, //数量
+      currentTotalPrice: "", //总价
+      thirdRemarks: "",
+      ThirdId:"",
+    });
+  },
+  // 删除供应商信息
+  confirmDeletNew(index) {
+       this.setState({
+        loading: true,
+        ThirdListVisible: false,
+      });
+      $.ajax({
+        url: globalConfig.context + "/api/admin/company/deleteCompany",
+        method: "post",
+        data: {
+          id: index.id,
+        },
+      }).done(
+        function (data) {
+          this.setState({
+            loading: false,
+          });
+          if (!data.error.length) {
+            message.success("删除成功!");
+            this.thirdTable(this.state.tid);
+          } else {
+            message.warning(data.error[0].message);
+          }
+        }.bind(this)
+      );
+  },
+  //点击供应商详情
+    tableRowClickOne(record) {
+      this.setState({
+        ThirdListVisible: true,
+        ThirdId:record.id,//供应商id
+        thirdCompanyName: record.companyName, //第三方名称
+        thirdUnitPrice: record.unitPrice, //单价
+        thirdQuantity: record.quantity, //数量
+        currentTotalPrice:record.totalAmount, //总价
+        thirdRemarks: record.remarks,
+      });
+    },
   render() {
+    const dataSources = this.state.customerArr || [];
+    console.log(dataSources);
+    const options = dataSources.map((group) => (
+      <Select.Option key={group.id} value={group.companyName}>
+        {group.companyName}
+      </Select.Option>
+    ));
     const formItemLayout = {
       labelCol: { span: 8 },
       wrapperCol: { span: 14 },
@@ -2818,7 +3168,7 @@ const Task = React.createClass({
                 </Spin>
               </Form>
             </TabPane>
-            <TabPane tab="外包(不走本部)" key="2">
+            <TabPane tab="外包/供应商信息" key="2">
               {this.state.refundStatus != 0 && this.state.refundStatus != 1 ? (
                 <div style={{ marginTop: 10 }}>
                   <div className="clearfix">
@@ -2828,89 +3178,151 @@ const Task = React.createClass({
                       label={
                         <span>
                           <strong style={{ color: "#f00" }}>*</strong>
-                          外包公司
+                          类型:
                         </span>
                       }
                     >
-                      <Input
-                        value={this.state.companyName}
+                      <Radio.Group
+                        value={this.state.startType}
                         onChange={(e) => {
-                          this.setState({
-                            companyName: e.target.value,
-                          });
+                          this.setState({ startType: e.target.value });
                         }}
-                        placeholder="请填写外包公司名称"
-                      />
+                      >
+                        <Radio value={0}>外包(不走总部)</Radio>
+                        <Radio value={1}>供应商信息</Radio>
+                      </Radio.Group>
                     </FormItem>
-                    <span className="tip" style={{ color: "red" }}>
-                      如多个公司,请用间隔
-                    </span>
                   </div>
-                  <div className="clearfix">
+                  {/* 专利类型 */}
+                  <div
+                    className="clearfix"
+                    style={{
+                      display: this.state.type == 1 ? "block" : "none",
+                    }}
+                  >
                     <FormItem
                       className="half-item"
                       {...formItemLayout}
                       label={
                         <span>
                           <strong style={{ color: "#f00" }}>*</strong>
-                          单价(万元)
+                          专利类型:
                         </span>
                       }
                     >
-                      <Input
-                        value={this.state.unitPrice}
+                      <Radio.Group
+                        value={this.state.patentType}
                         onChange={(e) => {
-                          this.setState({
-                            unitPrice: e.target.value,
-                          });
+                          this.setState({ patentType: e.target.value });
                         }}
-                        placeholder="请填写本次外包公司的价格"
-                      />
+                      >
+                        <Radio value={0}>专利申请/变更/转让</Radio>
+                        <Radio value={1}>专利买卖</Radio>
+                      </Radio.Group>
                     </FormItem>
                   </div>
-                  <div className="clearfix">
+                  <div
+                    className="clearfix"
+                    style={{
+                      display: this.state.type == 1 ? "block" : "none",
+                    }}
+                  >
                     <FormItem
                       className="half-item"
                       {...formItemLayout}
                       label={
                         <span>
                           <strong style={{ color: "#f00" }}>*</strong>
-                          数量(个)
+                          专利名称:
                         </span>
                       }
                     >
-                      <Input
-                        value={this.state.unitNumber}
+                      <Radio.Group
+                        value={this.state.patentNameType}
                         onChange={(e) => {
-                          this.setState({
-                            unitNumber: e.target.value,
-                          });
+                          this.setState({ patentNameType: e.target.value });
                         }}
-                        placeholder="请填写本次外包公司的价格"
-                      />
+                      >
+                        <Radio value={0}>实用新型专利</Radio>
+                        <Radio value={1}>发明专利</Radio>
+                        <Radio value={2}>外观专利</Radio>
+                        <Radio value={3}>
+                          其他
+                          <Input
+                            value={this.state.patentName}
+                            style={{ marginLeft: "15px" }}
+                            onChange={(e) => {
+                              this.setState({
+                                patentName: e.target.value,
+                              });
+                            }}
+                            placeholder="请填写专利名称"
+                          />
+                        </Radio>
+                      </Radio.Group>
                     </FormItem>
                   </div>
-                  <div className="clearfix">
-                    <FormItem
-                      className="half-item"
-                      {...formItemLayout}
-                      label={
-                        <span>
-                          <strong style={{ color: "#f00" }}>*</strong>
-                          总金额(万元)
-                        </span>
-                      }
+                  {/* 第三方信息专利 */}
+                  <div
+                    style={{
+                      display: this.state.type == 1 ? "block" : "none",
+                    }}
+                  >
+                    <span
+                      style={{
+                        marginLeft: "50px",
+                        fontSize: "18px",
+                      }}
                     >
-                      <Input
-                        value={this.state.amount}
-                        onChange={(e) => {
-                          this.setState({
-                            amount: e.target.value,
-                          });
-                        }}
-                        placeholder="请填写本次外包公司的价格"
-                      />
-                    </FormItem>
+                      第三方信息
+                    </span>
+                    <span
+                      style={{
+                        display: "inline-block",
+                        marginLeft: 10,
+                        color: "red",
+                      }}
+                    >
+                      金额总计(万元): {this.state.allTotalAmount}
+                    </span>
+                    <Button
+                      type="primary"
+                      onClick={(e) => {
+                        this.addThirdList();
+                      }}
+                      style={{
+                        float: "right",
+                        marginRight: "50px",
+                        marginBottom: "15px",
+                      }}
+                    >
+                      +新增供应商名称
+                    </Button>
+                  </div>
+                  <div
+                    className="clearfix"
+                    style={{
+                      display: this.state.type == 1 ? "block" : "none",
+                    }}
+                  >
+                    <Spin spinning={this.state.loading}>
+                      <Form layout="horizontal">
+                        <Table
+                          pagination={false}
+                          columns={this.state.ContactsListsNew}
+                          dataSource={this.state.thirdInfoList}
+                          onRowClick={this.tableRowClickOne}
+                          scroll={{ x: "max-content", y: 0 }}
+                          bordered
+                          size="small"
+                        />
+                        <Col
+                          span={24}
+                          offset={9}
+                          style={{ marginTop: "15px" }}
+                        ></Col>
+                      </Form>
+                    </Spin>
                   </div>
                   <div className="clearfix">
                     <FormItem
@@ -3282,6 +3694,26 @@ const Task = React.createClass({
                 <FormItem
                   className="half-item"
                   {...formItemLayout}
+                  label="官费"
+                  style={{ display: this.state.displayFees }}
+                >
+                  <span>
+                    {this.state.officialCost == 0 ? "无官费" : "有官费"}
+                  </span>
+                </FormItem>
+                <FormItem
+                  className="half-item"
+                  {...formItemLayout}
+                  label="费减"
+                  style={{ display: this.state.displayFees }}
+                >
+                  <span>
+                    {this.state.costReduction == 0 ? "无费减" : "有费减"}
+                  </span>
+                </FormItem>
+                <FormItem
+                  className="half-item"
+                  {...formItemLayout}
                   label="金额(万元)"
                 >
                   <span>{this.state.commodityPrice ? "***" : 0}</span>
@@ -4248,6 +4680,128 @@ const Task = React.createClass({
             </p>
           </Spin>
         </Modal>
+        <Modal
+          visible={this.state.ThirdListVisible}
+          onCancel={this.handleCancelclose}
+          width={800}
+          title="新增供应商"
+          footer=""
+          // width={1300}
+          className="admin-desc-content"
+        >
+          <Form
+            layout="horizontal"
+            // onSubmit={this.handleSubmit1}
+            // id="demand-form"
+            style={{ paddingBottom: "40px" }}
+          >
+            <Spin spinning={this.state.loading}>
+              <div className="clearfix">
+                <div className="clearfix">
+                  <FormItem {...formItemLayout} label="供应商名称">
+                    <AutoComplete
+                      className="certain-category-search"
+                      dropdownClassName="certain-category-search-dropdown"
+                      dropdownMatchSelectWidth={false}
+                      dropdownStyle={{ width: 220 }}
+                      style={{ width: "220px" }}
+                      dataSource={options}
+                      placeholder="请输入供应商名称"
+                      value={this.state.thirdCompanyName}
+                      onChange={this.httpChange}
+                      filterOption={true}
+                      onBlur={this.blurChange}
+                      onSelect={this.selectAuto}
+                      required="required"
+                    ></AutoComplete>
+                    <span className="mandatory">*</span>
+                  </FormItem>
+                </div>
+                <div className="clearfix">
+                  <FormItem {...formItemLayout} label="单价(万元)">
+                    <Input
+                      value={this.state.thirdUnitPrice}
+                      placeholder="请输入金额(必填项)"
+                      required="required"
+                      onBlur={this.calculatedAmount}
+                      onChange={(e) => {
+                        this.setState({
+                          thirdUnitPrice: e.target.value,
+                        });
+                      }}
+                      style={{ width: "220px" }}
+                    />
+                    <span className="mandatory">*</span>
+                  </FormItem>
+                </div>
+                <div className="clearfix">
+                  <FormItem {...formItemLayout} label="数量">
+                    <Input
+                      value={this.state.thirdQuantity}
+                      placeholder="请输入数量(必填项)"
+                      required="required"
+                      onBlur={this.calculatedAmount}
+                      onChange={(e) => {
+                        this.setState({
+                          thirdQuantity: e.target.value,
+                        });
+                      }}
+                      style={{ width: "220px" }}
+                    />
+                    <span className="mandatory">*</span>
+                  </FormItem>
+                </div>
+                <div className="clearfix">
+                  <FormItem {...formItemLayout} label="总价(万元)">
+                    <span>{this.state.currentTotalPrice}</span>
+                  </FormItem>
+                </div>
+                <div className="clearfix">
+                  <FormItem
+                    style={{ height: "auto" }}
+                    labelCol={{ span: 4 }}
+                    wrapperCol={{ span: 18 }}
+                    label="备注"
+                  >
+                    <TextArea
+                      rows={4}
+                      placeholder="请输入备注"
+                      ref="signTotalAmount"
+                      style={{ width: "95%" }}
+                      value={this.state.thirdRemarks}
+                      onChange={(e) => {
+                        this.setState({
+                          thirdRemarks: e.target.value,
+                        });
+                      }}
+                    />
+                  </FormItem>
+                </div>
+                <div className="clearfix">
+                  <div className="addSave" style={{ marginTop: "15px" }}>
+                    <Button
+                      className="cancel"
+                      type="primary"
+                      onClick={this.handleCancelq}
+                      style={{ marginLeft: "50px" }}
+                      htmlType="submit"
+                    >
+                      保存
+                    </Button>
+                    <Button
+                      className="cancel"
+                      type="ghost"
+                      onClick={this.handleCancelclose}
+                      style={{ marginLeft: "50px" }}
+                    >
+                      取消
+                    </Button>
+                  </div>
+                </div>
+              </div>
+            </Spin>
+          </Form>
+        </Modal>
       </div>
     );
   },

+ 34 - 4
js/component/manageCenter/project/task/taskAssignment.jsx

@@ -446,6 +446,9 @@ const Task = React.createClass({
               contactsMobile: thisdata.contactsMobile, //联系人电话
               taskStatus: thisdata.taskStatus, //是否分配
               splitStatus: thisdata.splitStatus,
+              officialCost: thisdata.officialCost,
+              costReduction: thisdata.costReduction,
+              type: thisdata.type,
             });
           }
         }
@@ -491,10 +494,20 @@ const Task = React.createClass({
   nextCancel() {
     this.setState({
       addnextVisible: false,
+      displayFees: "none",
+      officialCost: "", //是否有官费
+      costReduction: "", //是否有费减
     });
   },
   //点击打卡项目详情
   tableRowClickX(record) {
+    if (record.type == "1") {
+      this.setState({
+        displayFees: "block",
+        costReduction: record.costReduction,
+        officialCost: record.officialCost,
+      });
+    }
     this.setState({
       jid: record.id, //项目ID
       kid: record.commodityId, //商品ID
@@ -1022,10 +1035,7 @@ const Task = React.createClass({
           onOk={this.visitOk}
           onCancel={this.visitCancel}
         >
-          <Tabs
-            activeKey={this.state.activeKey}
-            onChange={this.orderChange}
-          >
+          <Tabs activeKey={this.state.activeKey} onChange={this.orderChange}>
             <TabPane tab="任务详情" key="1">
               <Form
                 layout="horizontal"
@@ -1325,6 +1335,26 @@ const Task = React.createClass({
                 <FormItem
                   className="half-item"
                   {...formItemLayout}
+                  label="官费"
+                  style={{ display: this.state.displayFees }}
+                >
+                  <span>
+                    {this.state.officialCost == 0 ? "无官费" : "有官费"}
+                  </span>
+                </FormItem>
+                <FormItem
+                  className="half-item"
+                  {...formItemLayout}
+                  label="费减"
+                  style={{ display: this.state.displayFees }}
+                >
+                  <span>
+                    {this.state.costReduction == 0 ? "无费减" : "有费减"}
+                  </span>
+                </FormItem>
+                <FormItem
+                  className="half-item"
+                  {...formItemLayout}
                   label="金额(万元)"
                 >
                   <span>{this.state.commodityPrice}</span>

文件差異過大導致無法顯示
+ 1494 - 813
js/component/manageCenter/set/business/businessProject.jsx


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "afanti",
-  "version": "1.1.47",
+  "version": "1.1.48",
   "description": "",
   "main": "index.js",
   "scripts": {