myClientDesc.jsx 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. import React from 'react';
  2. import { Icon, Modal, message, Spin, Input, Select, Button, Form } from 'antd';
  3. import './myClient.less';
  4. import ajax from 'jquery/src/ajax/xhr.js';
  5. import $ from 'jquery/src/ajax';
  6. import {socialAttribute} from '../../../dataDic.js';
  7. const AchievementDetailForm = Form.create()(React.createClass({
  8. getInitialState() {
  9. return {
  10. loading: false,
  11. data: {},
  12. };
  13. },
  14. handleSubmit(e) {
  15. console.log(this.state.societyTag)
  16. if(this.state.societyTagt==undefined){
  17. message.warning('请填写社会属性!')
  18. return false;
  19. }
  20. e.preventDefault();
  21. this.props.form.validateFields((err, values) => {
  22. if (!err) {
  23. this.setState({
  24. loading: true
  25. });
  26. $.ajax({
  27. method: "POST",
  28. dataType: "json",
  29. crossDomain: false,
  30. url: globalConfig.context + '/api/admin/customer/addCustomer',
  31. data: {
  32. name: this.state.companyNamet,
  33. contacts:this.state.content,
  34. contactMobile: this.state.telnum,
  35. societyTag:this.state.societyTagt,
  36. type:'1'
  37. }
  38. }).done(function (data) {
  39. this.setState({
  40. loading: false
  41. });
  42. if (!data.error.length) {
  43. message.success('保存成功!');
  44. this.props.handleOk();
  45. } else {
  46. message.warning(data.error[0].message);
  47. }
  48. }.bind(this));
  49. }
  50. });
  51. },
  52. //去完善
  53. addContent(){
  54. let telnum=this.state.telnum;
  55. let companyName=this.state.companyNamet;
  56. let content=this.state.content;
  57. if(!telnum||!companyName||!content){
  58. message.warning('此3项都要填');
  59. }else{
  60. this.props.newmodal(true);
  61. this.props.closeDesc(false);
  62. }
  63. },
  64. componentWillMount() {
  65. this.state.companyNamet='';
  66. this.state.content='';
  67. this.state.telnum='';
  68. this.state.societyTagt=undefined;
  69. },
  70. componentWillReceiveProps(nextProps) {
  71. if (!this.props.visible && nextProps.visible) {
  72. this.state.companyNamet='';
  73. this.state.content='';
  74. this.state.telnum='';
  75. this.state.societyTagt=undefined;
  76. this.props.form.resetFields();
  77. };
  78. },
  79. render() {
  80. const theData = this.state.data || {};
  81. const { getFieldDecorator } = this.props.form;
  82. const FormItem = Form.Item
  83. const formItemLayout = {
  84. labelCol: { span: 8 },
  85. wrapperCol: { span: 14 },
  86. };
  87. return (
  88. <div>
  89. <Form horizontal onSubmit={this.handleSubmit} id="demand-form">
  90. <Spin spinning={this.state.loading}>
  91. <div className="clearfix">
  92. <FormItem className="half-item"
  93. {...formItemLayout}
  94. label="公司名称" >
  95. <Input value={this.state.companyNamet} placeholder="公司名称"
  96. onChange={(e) => { this.setState({ companyNamet: e.target.value }); }} required="required"/>
  97. </FormItem>
  98. </div>
  99. <div className="clearfix">
  100. <FormItem className="half-item"
  101. {...formItemLayout}
  102. label="联系人" >
  103. <Input value={this.state.content} placeholder="联系人"
  104. onChange={(e) => { this.setState({ content: e.target.value }); }} required="required"/>
  105. </FormItem>
  106. </div>
  107. <div className="clearfix">
  108. <FormItem className="half-item"
  109. {...formItemLayout}
  110. label="联系电话" >
  111. <Input value={this.state.telnum} placeholder="联系电话"
  112. onChange={(e) => { this.setState({ telnum: e.target.value }); }} required="required"/>
  113. </FormItem>
  114. </div>
  115. <div className="clearfix">
  116. <FormItem className="half-item"
  117. {...formItemLayout}
  118. label="社会属性"
  119. >
  120. <Select placeholder="客户社会属性" value={this.state.societyTagt} onChange={(e) => { this.setState({ societyTagt: e}); }}>
  121. {
  122. socialAttribute.map(function (item) {
  123. return <Select.Option key={item.value} >{item.key}</Select.Option>
  124. })
  125. }
  126. </Select>
  127. </FormItem>
  128. </div>
  129. <FormItem wrapperCol={{ span: 12, offset: 4 }}>
  130. <Button className="set-submit" type="primary" htmlType="submit">保存</Button>
  131. {/*<Button className="set-submit" type="primary" onClick={(e)=>{this.addContent();this.props.closeDesc}}>去完善</Button>*/}
  132. <Button className="set-submit" type="ghost" onClick={this.props.closeDesc}>取消</Button>
  133. </FormItem>
  134. </Spin>
  135. </Form >
  136. </div>
  137. )
  138. }
  139. }));
  140. const CustomerDetail = React.createClass({
  141. getInitialState() {
  142. return {
  143. visible: false,
  144. tabsKey: 1,
  145. loading: false,
  146. dataSource: [],
  147. };
  148. },
  149. handleCancel(e) {
  150. this.setState({
  151. visible: false,
  152. });
  153. this.props.closeDesc(false);
  154. },
  155. handleOk(e) {
  156. this.setState({
  157. visible: false,
  158. });
  159. this.props.closeDesc(false, true);
  160. },
  161. componentWillReceiveProps(nextProps) {
  162. if (!this.state.visible && nextProps.showDesc) {
  163. this.state.tabsKey = "1";
  164. };
  165. this.state.visible = nextProps.showDesc;
  166. },
  167. render() {
  168. return (
  169. <div className="patent-desc">
  170. <Modal maskClosable={false} visible={this.state.visible}
  171. onOk={this.checkPatentProcess} onCancel={this.handleCancel}
  172. width='800px'
  173. title='新建客户'
  174. footer=''
  175. className="admin-desc-content">
  176. <Spin spinning={this.state.loading}>
  177. <AchievementDetailForm
  178. data={this.props.data}
  179. newmodal={this.props.newmodal}
  180. closeDesc={this.handleCancel}
  181. visible={this.state.visible}
  182. handleOk={this.handleOk} />
  183. </Spin>
  184. </Modal>
  185. </div>
  186. );
  187. },
  188. });
  189. export default CustomerDetail;