| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 | import React from 'react';import { Tabs, Table, Icon, Tooltip, Modal, message, AutoComplete, Spin, DatePicker,Upload, Input, InputNumber, Select,TimePicker, Button, Radio, Form, Cascader, Tag, Switch } from 'antd';import './myClient.less';import ajax from 'jquery/src/ajax/xhr.js';import moment from 'moment';import $ from 'jquery/src/ajax';import { areaSelect } from '../../NewDicProvinceList';import { maturityList, innovationList, transferModeList,cityArr ,newFollow,customerStatus,intentionalService,tag} from '../../dataDic';import { IndustryObject, getIndustryCategory } from '../../DicIndustryList.js';import { beforeUploadFile, splitUrl, companySearch, getTransferMode, getAchievementCategory, getTechAuditStatus, getDemandType, getMaturity, getInnovation,beforeUpload, getBase64,getsex,getCompanyIntention,getcityArr,getfllowSituation,getcustomerStatue} from '../../tools.js';import throttle from '../../throttle.js';const AchievementDetailForm = Form.create()(React.createClass({    getInitialState() {        return {            loading: false,            data: {},            tags: [],        };    },    handleSubmit(e) {        e.preventDefault();        this.props.form.validateFields((err, values) => {                                             //意向服务多选//          let companyMore = [];//          if (values.companyIntention.length) {//              let companyList = [];//              values.companyIntention.map(function (item) {//                  companyList.push(item);//              });//              companyMore = companyList.join(",");//          };            let yearMonth = new Date().toLocaleDateString();                       let yearString = yearMonth.split('/').join('-');                                          	                   	let days = new Date();             let hours = parseInt(days.getHours())<10 ? "0"+days.getHours():days.getHours();                        let minutes =parseInt(days.getMinutes())<10 ? "0"+days.getMinutes():days.getMinutes();                        let seconds =parseInt(days.getSeconds())<10 ? "0"+days.getSeconds():days.getSeconds();                       let	pjstringY=hours+':'+minutes+':'+seconds ;             let tags=''            switch(values.tag){            	case '科技专家':tags=0; break;            	case '科研单位':tags=1; break;            	case '民间达人':tags=2; break;            }            if (!err) {                this.setState({                    loading: true                });                                $.ajax({                    method: "POST",                    dataType: "json",                    crossDomain: false,                    url: this.props.data.id ?  globalConfig.context + '/api/admin/customer/updCustomer' : globalConfig.context + '/api/admin/customer/addCustomer',                    data: {                        id: this.props.data.id, //编号                        customerType:values.customerTyp ,//客户信息  1                                                                                                      companyName: values.companyName,//公司名称  1                        companyIndustry: values.companyIndustry,//公司行业                          companyIntention: values.companyIntention,//公司意向1                        tag: tags,                        locationProvince: values.locationProvince,//省份1                        adress: values.adress,//详细地址1                        remarks: values.remarks,//备注1                        followSituation: values.followSituation,//最新跟进1                        customerStatus: values.customerStatus,//客户状态1                        name: values.name,//客户姓名1                                                mobile: values.mobile,//座机1                        telNum: values.telNum,//手机号码1                        sex: values.sex,//性别1                        customerPosition: values.customerPosition,//职位1                        wechat: values.wechat,//微信号1                        qq: values.qq,//qq     1                                         depatrment: values.depatrment,//部门             1                        email: values.email,//邮箱     1                                          	shareType:0,                        followDates:yearString+' '+pjstringY,//时间,                        primaryFlg:0,                    }                }).done(function (data) {                    this.state.auditStatus = 0;                    this.setState({                        loading: false                    });                    if (!data.error.length) {                        message.success('保存成功!');                        this.props.handleOk();                    } else {                        message.warning(data.error[0].message);                    }                }.bind(this));            }        });    },    componentWillMount() {        this.state.therottleSearch = throttle(this.handleSearch, 1000, { leading: false }).bind(this);        if (this.props.data && this.props.data.id) {            this.loadData(this.props.data.id, this.props.detailApiUrl);        };      },    componentWillReceiveProps(nextProps) {        if (!this.props.visible && nextProps.visible) {            if (nextProps.data && nextProps.data.id) {                this.loadData(nextProps.data.id, nextProps.detailApiUrl);            };            this.state.data = {};            this.state.tags = [];            this.state.switchValue = false;            this.state.radios = false;            this.state.technicalPictureUrl = [];            this.state.coverImg = [];            this.state.maturityPictureUrl = [];            this.state.textFileList = [];            this.state.techPlanFileList = [];            this.state.businessPlanFileList = [];            this.props.form.resetFields();        };    },       render() {        const theData = this.state.data || {};        const { getFieldDecorator } = this.props.form;        const FormItem = Form.Item        const formItemLayout = {            labelCol: { span: 8 },            wrapperCol: { span: 14 },        };               const { RangePicker } = DatePicker;        return (            <Form horizontal onSubmit={this.handleSubmit} id="demand-form">                <Spin spinning={this.state.loading}>                    <div className="clearfix">                    	<FormItem className="half-item"		                            {...formItemLayout}		                            label="客户类型" >		                            {getFieldDecorator('customerTyp', {		                                rules: [{ required: true, message: '此项为必填项!' }],		                                initialValue: theData.customerTyp		                            })(		                                <Select placeholder="选择客户类型" style={{ width: 160 }} >		                                    <Select.Option value="0" >个人客户</Select.Option>		                                    <Select.Option value="1" >机构单位</Select.Option>		                                    <Select.Option value="2" >团体单位</Select.Option> 		                                </Select>		                                )}		                </FormItem>                    	<div className="clearfix" style={{marginLeft:'40px',marginBottom:'20px',color:'#000000'}}>基本资料:</div>	                    	                                               <div>	                    					              <FormItem className="half-item"		                            {...formItemLayout}		                            label="录入时间" >		                                                       			                   </FormItem> 	                                            </div>                        <div className="clearfix" style={{marginLeft:'40px',marginBottom:'20px',color:'#000000'}}>公司资料:</div>	                    		                           	                                                       	                                                                       <div>                            <FormItem className="half-item"	                            {...formItemLayout}	                            label="公司名称" >	                            {getFieldDecorator('companyName', {	                                rules: [{ required: true, message: '此项为必填项!' }],	                                initialValue: theData.companyName	                            })(	                                <Input />	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="公司行业" >	                            {getFieldDecorator('companyIndustry', {	                                	                                initialValue: theData.companyIndustry	                            })(	                                <Input />	                                )}	                        </FormItem>	                     	                        			                <FormItem className="half-item"	                            {...formItemLayout}	                            label="地区" >	                            {getFieldDecorator('locationProvince', {	                                initialValue: getcityArr(theData.locationProvince)	                            })(	                                <Select placeholder="选择地区" style={{ width: 160 }} >	                                    {	                                        cityArr.map(function (item) {	                                            return <Select.Option key={item.value} >{item.key}</Select.Option>	                                        })	                                    }	                                </Select>	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="最新跟进" >	                            {getFieldDecorator('followSituation', {	                            	rules: [{ required: true, message: '此项为必填项!' }],	                                initialValue: getfllowSituation(theData.followSituation)	                            })(	                                <Select placeholder="选择跟进进度" style={{ width: 160 }} >	                                    {	                                        newFollow.map(function (item) {	                                            return <Select.Option key={item.value} >{item.key}</Select.Option>	                                        })	                                    }	                                </Select>	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="客户状态" >	                            {getFieldDecorator('customerStatus', {	                            	rules: [{ required: true, message: '此项为必填项!' }],	                                initialValue: getcustomerStatue(theData.customerStatus)	                            })(	                                <Select placeholder="选择客户状态" style={{ width: 160 }} >	                                    {	                                        customerStatus.map(function (item) {	                                            return <Select.Option key={item.value} >{item.key}</Select.Option>	                                        })	                                    }	                                </Select>	                                )}	                        </FormItem>	                       	                        <FormItem className="half-item"		                            {...formItemLayout}		                            label="详细地址" >		                            {getFieldDecorator('adress', {		                            			                                initialValue: theData.adress		                            })(		                                <Input />		                                )}		                    </FormItem>		                     <FormItem className="half-item"	                            {...formItemLayout}	                            label="标签" >	                            {getFieldDecorator('tag', {	                            		                                initialValue: theData.tag	                            })(                               <Select placeholder="选择客户标签" >                                    {                                        tag.map(function (item) {                                            return <Select.Option key={item.key} >{item.key}</Select.Option>                                        })                                    }                                </Select>	                                )}	                        </FormItem>	                        <div  className="clearfix" >			                        <FormItem className="half-item" style={{marginLeft:'80px'}}			                         labelCol={{ span: 4 }}			                        wrapperCol={{ span: 18 }}			                        label="意向服务" > 			                        {getFieldDecorator('companyIntention', {			                            	rules: [{ required: true, message: '此项为必填项!' }],				                            	initialValue: theData.companyIntention	                                })(									    <Select placeholder="选择意向服务" style={{ width: 160 }} >	                                    {	                                        intentionalService.map(function (item) {	                                            return <Select.Option key={item.value} >{item.key}</Select.Option>	                                        })	                                    }	                                </Select>	                                )}			                    </FormItem>		                    </div>	                        <div  className="clearfix">		                        				                <FormItem			                        labelCol={{ span: 4 }}			                        wrapperCol={{ span: 18 }}			                        label="备注" >			                        {getFieldDecorator('remarks', {			                            initialValue: theData.remarks			                        })(			                            <Input type="textarea" rows={4} />			                            )}			                    </FormItem>			                </div>                        </div>                          <div className="clearfix" style={{marginLeft:'40px',marginBottom:'20px',color:'#000000'}}>联系资料:</div>                        <div>                        	<FormItem className="half-item"	                            {...formItemLayout}	                            label="姓名" >	                            {getFieldDecorator('name', {	                                rules: [{ required: true, message: '此项为必填项!' }],	                                initialValue: theData.name	                            })(	                                <Input />	                                )}	                        </FormItem>                       		<FormItem className="half-item"	                            {...formItemLayout}	                            label="手机号码" >	                            {getFieldDecorator('telNum', {		                            	rules: [{ required: true, message: '此项为必填项!' }],	                                initialValue: theData.telNum 	                            })(	                                <Input />	                                )}	                        </FormItem>	                        	                        <FormItem className="half-item"                                {...formItemLayout}                                label="性别" >                                {getFieldDecorator('sex', {                                	                                    initialValue: getsex(theData.sex)                                })(                                    <Radio.Group>                                        <Radio value="0">男</Radio>                                        <Radio value="1">女</Radio>                                    </Radio.Group>                                    )}                       		</FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="座机号" >	                            {getFieldDecorator('mobile', {	                              	                                initialValue: theData.mobile	                            })(	                                <Input />	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="QQ号码" >	                            {getFieldDecorator('qq', {	                              	                                initialValue: theData.qq	                            })(	                                <Input />	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="邮箱号" >	                            {getFieldDecorator('email', {	                              	                                initialValue: theData.email	                            })(	                                <Input />	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="微信" >	                            {getFieldDecorator('wechat', {	                              	                                initialValue: theData.wechat	                            })(	                                <Input />	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="部门" >	                            {getFieldDecorator('depatrment', {	                              	                                initialValue: theData.depatrment	                            })(	                                <Input />	                                )}	                        </FormItem>	                        <FormItem className="half-item"	                            {...formItemLayout}	                            label="职位" >	                            {getFieldDecorator('customerPosition', {	                              	                                initialValue: theData.customerPosition	                            })(	                                <Input />	                                )}	                        </FormItem>                        </div>                                			</div>                    <FormItem wrapperCol={{ span: 12, offset: 4 }}>                        <Button className="set-submit" type="primary" htmlType="submit">保存</Button>                                              <Button className="set-submit" type="ghost" onClick={this.props.closeDesc}>取消</Button>                    </FormItem>                                   </Spin>            </Form >        )    }}));const CustomerDetail = React.createClass({    getInitialState() {        return {            visible: false,            tabsKey: 1,            loading: false,                       dataSource: [],        };    },        handleCancel(e) {        this.setState({            visible: false,        });        this.props.closeDesc(false);    },    handleOk(e) {        this.setState({            visible: false,        });        this.props.closeDesc(false, true);    },        componentWillReceiveProps(nextProps) {        if (!this.state.visible && nextProps.showDesc) {            this.state.tabsKey = "1";        };        this.state.visible = nextProps.showDesc;    },    render() {                    return (                <div className="patent-desc">                    <Modal maskClosable={false} visible={this.state.visible}                        onOk={this.checkPatentProcess} onCancel={this.handleCancel}                        width='1000px'                        title='新建客户'                                               footer=''                        className="admin-desc-content">                        <Spin spinning={this.state.loading}>                                           <AchievementDetailForm                                data={this.props.data}                                                               closeDesc={this.handleCancel}                                visible={this.state.visible}                                handleOk={this.handleOk} />                        </Spin>                    </Modal>                </div>            );            },});export default CustomerDetail;
 |