import React from 'react'; import { Radio, Icon, Button, AutoComplete, Cascader, Input, Select, Spin, Popconfirm, Table, Switch, message, DatePicker, Upload, Form, Modal, Tabs, Tag, Tooltip } from 'antd'; import ajax from 'jquery/src/ajax/xhr.js'; import $ from 'jquery/src/ajax'; import moment from 'moment'; import TechAchievementDesc from '@/manageCenter/achievement/crmAchievement.jsx'; import { citySelect, provinceList, areaSelect } from '@/NewDicProvinceList'; import { socialAttribute, industry, auditStatusL, lvl, currentMember, slcRedit, dataGrade } from '@/dataDic.js'; import { getSocialAttribute, beforeUploadFile, splitUrl, getSlcRedit, getDataGrade, getAchievementCategory, getTechAuditStatus, getboutique, getXiangmoState, onReplace } from '@/tools.js'; import './customer.less'; import ImgList from "../../../../common/imgList"; import { ChooseList } from "../../../order/orderNew/chooseList"; import EnterpriseNameChange from "../../../../common/enterpriseNameChange"; const TabPane = Tabs.TabPane; //图片组件 const PicturesWall = React.createClass({ getInitialState() { return { previewVisible: false, previewImage: '', fileList: [], } }, handleCancel() { this.setState({ previewVisible: false }) }, handlePreview(file) { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }, handleChange(info) { let fileList = info.fileList; this.setState({ fileList }); this.props.fileList(fileList); }, componentWillReceiveProps(nextProps) { this.state.fileList = nextProps.pictureUrl; }, render() { const { previewVisible, previewImage, fileList } = this.state; const uploadButton = ( <div> <Icon type="plus" /> <div className="ant-upload-text">点击上传</div> </div> ); return ( <div style={{ display: "inline-block" }}> <ImgList domId={this.props.domId} uploadConfig={{ action: globalConfig.context + "/api/admin/customer/uploadCustomerImg", data: { 'sign': '' }, multiple: true, listType: "picture-card", }} onChange={(infor) => { this.handleChange(infor) }} fileList={fileList} /> </div> ); } }); const IntentionCustomer = Form.create()(React.createClass({ loadData(pageNo, apiUrl) { this.setState({ visitModul: false, loading: true, ispage: pageNo, modalVisible: false }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/listDepCustomerInformation", data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, name: this.state.nameSearch, dataGrade: this.state.dataGrade, province: !(this.state.addressSearch).length ? this.state.provinceSearch : this.state.addressSearch[0], city: !(this.state.addressSearch).length ? '' : this.state.addressSearch[1], startDate: this.state.releaseDate[0], endDate: this.state.releaseDate[1], }, success: function (data) { let theArr = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; let diqu = (thisdata.province == null ? "" : thisdata.province) + (thisdata.city == null ? "" : "-" + thisdata.city) + (thisdata.area == null ? "" : "-" + thisdata.area); theArr.push({ key: i, id: thisdata.id,//用户ID type: thisdata.type,//类型 name: thisdata.name,//用户名称 diqu: diqu,//省市区 industry: thisdata.industry,//行业 contacts: thisdata.contacts,//联系人 iname: thisdata.iname,//客户资料所属人 dataGrade: thisdata.dataGrade ? (thisdata.dataGrade * 100).toFixed(2) + "%" : "",//资料完整度 contactMobile: thisdata.contactMobile,//联系人电话 createTime: thisdata.createTime,//行业 }); }; this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; }; if (data.data && data.data.list && !data.data.list.length) { this.state.pagination.current = 0 this.state.pagination.total = 0 } this.setState({ dataSource: theArr, pagination: this.state.pagination, selectedRowKeys: [] }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, loadDatas(pageNo) { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/achievement/listUserAchievement", data: { pageNo: pageNo || 1, pageSize: this.state.paginationDate.pageSize, uid: this.state.uid, }, success: function (data) { let theArr = []; if (!data.data || !data.data.list) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; theArr.push({ key: i, id: thisdata.id, serialNumber: thisdata.serialNumber, dataCategory: thisdata.dataCategory, name: thisdata.name, keyword: thisdata.keyword, theName: thisdata.username || thisdata.ownerName, category: thisdata.category, ownerName: thisdata.username ? thisdata.username : thisdata.ownerName, ownerType: thisdata.ownerType, ownerMobile: thisdata.ownerMobile, status: thisdata.status, releaseDate: thisdata.releaseDate, releaseDateFormattedDate: thisdata.releaseDateFormattedDate, auditStatus: thisdata.auditStatus, boutique: thisdata.boutique, hot: thisdata.hot, techBrokerId: thisdata.techBrokerId, createTimeFormattedDate: thisdata.createTimeFormattedDate, remark: thisdata.remark }); }; this.state.paginationDate.current = data.data.pageNo; this.state.paginationDate.total = data.data.totalCount; }; this.setState({ dataSourceDate: theArr, paginationDate: this.state.paginationDate }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, loadDatac(pageNo, apiUrl) { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customers/selectListOrgAnnual", data: { // pageNo: pageNo || 1, // pageSize: this.state.pagination.pageSize, uid: this.state.uid, }, success: function (data) { let theArr = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; let diqu = (thisdata.province == null ? "" : thisdata.province) + (thisdata.city == null ? "" : "-" + thisdata.city) + (thisdata.area == null ? "" : "-" + thisdata.area); theArr.push({ key: i, id: thisdata.id,//年报ID year: thisdata.year,//年份 salesAmount: thisdata.salesAmount,//营销额 fixedAssets: thisdata.fixedAssets,//固定资产 researchAmount: thisdata.researchAmount,//研发费用 assets: thisdata.assets,//总资产 aid: thisdata.aid,//录入人 }); }; // this.state.pagination.current = data.data.pageNo; // this.state.pagination.total = data.data.totalCount; }; if (data.data && data.data.list && !data.data.list.length) { this.state.pagination.current = 0 this.state.pagination.total = 0 } this.setState({ dataSourcec: theArr, // pageNo: pageNo, // pagination: this.state.pagination, // selectedRowKeys:[] }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, loadDatax(pageNo, apiUrl) { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customers/selectListOrgYearProject", data: { uid: this.state.uid, }, success: function (data) { let theArr = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; let diqu = (thisdata.province == null ? "" : thisdata.province) + (thisdata.city == null ? "" : "-" + thisdata.city) + (thisdata.area == null ? "" : "-" + thisdata.area); theArr.push({ key: i, id: thisdata.id,//用户ID projectName: thisdata.projectName,//项目名称 year: thisdata.year,//年份 status: thisdata.status ? thisdata.status.toString() : "",//项目状态 remark: thisdata.remark,//备注 aid: thisdata.aid,//录入人 }); }; // this.state.pagination.current = data.data.pageNo; // this.state.pagination.total = data.data.totalCount; }; if (data.data && data.data.list && !data.data.list.length) { this.state.pagination.current = 0 this.state.pagination.total = 0 } this.setState({ dataSourcex: theArr, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, getInitialState() { return { addressSearch: [], orgCodeUrl: [], companyLogoUrl: [], visible: false, releaseDate: [], visitModul: false, detailApi: '', followData: {}, selectedRowKeys: [], selectedRows: [], loading: false, callnub: "0", modalVisible: false, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return '共' + total + '条数据'; } }, paginationDate: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadDatas(page); }.bind(this), showTotal: function (total) { return '共' + total + '条数据'; } }, columns: [{ title: '客户名称', dataIndex: 'name', key: 'name', width: 100, render: text => { return ( <Tooltip title={onReplace(text)}> <div // style={{ // maxWidth: '100px', // overflow: 'hidden', // textOverflow: "ellipsis", // whiteSpace: 'nowrap', // }} >{onReplace(text)}</div> </Tooltip> ) } }, { title: '地区', dataIndex: 'diqu', key: 'diqu', }, { title: '联系人', dataIndex: 'contacts', key: 'contacts', }, { title: '联系电话', dataIndex: 'contactMobile', key: 'contactMobile', }, { title: '资料完整度', dataIndex: 'dataGrade', key: 'dataGrade', }, { title: '客户资料所属人', dataIndex: 'iname', key: 'iname', }, { title: '行业', dataIndex: 'industry', key: 'industry' }, { title: '创建时间', dataIndex: 'createTime', key: 'createTime', } ], businessScope: [], salesTarget: [], data: [], dataSource: [], columnsDate: [ { title: '编号', dataIndex: 'serialNumber', key: 'serialNumber', }, { title: '名称', dataIndex: 'name', key: 'name', }, { title: '关键字', dataIndex: 'keyword', key: 'keyword', }, { title: '类型', dataIndex: 'category', key: 'category', render: text => { return getAchievementCategory(text); } }, { title: '审核状态', dataIndex: 'auditStatus', key: 'auditStatus', render: text => { return getTechAuditStatus(text) } }, { title: '是否精品', dataIndex: 'boutique', key: 'boutique', render: text => { return getboutique(text) } }, { title: '发布时间', dataIndex: 'releaseDateFormattedDate', key: 'releaseDateFormattedDate', }, { title: '录入时间', dataIndex: 'createTimeFormattedDate', key: 'createTimeFormattedDate', }, ], dataSourceDate: [], columnsc: [{ title: '年份', dataIndex: 'year', key: 'year', }, { title: '营销收入(万)', dataIndex: 'salesAmount', key: 'salesAmount', }, { title: '总资产(万)', dataIndex: 'assets', key: 'assets' }, { title: '固定资产(万)', dataIndex: 'fixedAssets', key: 'fixedAssets' }, { title: '研发费用(万)', dataIndex: 'researchAmount', key: 'researchAmount', } ], dataSourcec: [], columnsx: [{ title: '项目名称', dataIndex: 'projectName', key: 'projectName', }, { title: '年份', dataIndex: 'year', key: 'year', }, { title: '项目状态', dataIndex: 'status', key: 'status', render: text => { return getXiangmoState(text); } }, { title: '备注', dataIndex: 'remark', key: 'remark', } ], dataSourcex: [], }; }, componentWillMount() { //城市 let Province = []; provinceList.map(function (item) { var id = String(item.id) Province.push( <Select.Option value={id} key={item.name}>{item.name}</Select.Option> ) }); //行业 let intentionalArr = []; industry.map(function (item) { intentionalArr.push( <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option> ) }); //会员等级 let lvlArr = []; lvl.map(function (item) { lvlArr.push( <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option> ) }); //会员状态customerStatus let currentMemberArr = []; currentMember.map(function (item) { currentMemberArr.push( <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option> ) }); this.state.Provinces = Province; this.state.intentionalOption = intentionalArr; this.state.lvlArrOption = lvlArr; this.state.currentMemberArrOption = currentMemberArr; this.loadData(); }, search() { this.loadData(); }, reset() { this.state.nameSearch = ''; this.state.addressSearch = []; this.state.dataGrade = undefined; this.state.follow = undefined; this.state.provinceSearch = undefined; this.state.citySearch = undefined; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; this.loadData(); }, //列表详情 details(id) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/findOrganizationCustomerDetail", data: { uid: id }, success: function (data) { let thisDetail = data.data; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { let ProvinceCityArr = []; let ProvinceS = thisDetail.locationProvince; //省 let citys = thisDetail.locationCity;//市 let Areas = thisDetail.locationArea;//区 ProvinceCityArr.push(ProvinceS, citys, Areas); this.setState({ detailId: thisDetail.id,//详情ID identifyName: thisDetail.identifyName,//客户名称 uid: thisDetail.uid,//客户ID societyTag: thisDetail.societyTag,//社会标签 companyLogoUrl: thisDetail.companyLogoUrl ? splitUrl(thisDetail.companyLogoUrl, ',', globalConfig.avatarHost + '/upload') : [],//公司LOGO introduction: thisDetail.introduction,//介绍 industry: thisDetail.industry ? thisDetail.industry.toString() : "",//行业 locationProvince: thisDetail.locationProvince,//省 locationCity: thisDetail.locationCity,//市 locationArea: thisDetail.locationArea,//区 ProvinceCity: ProvinceCityArr[0] != null ? ProvinceCityArr : undefined,//省市区 postalAddress: thisDetail.postalAddress,//通讯地址 contactsFixedTel: thisDetail.contactsFixedTel,//固定电话 contactsFax: thisDetail.contactsFax,//传真地址 registeredCapital: thisDetail.registeredCapital,//注册资金 enterpriseScale: thisDetail.enterpriseScale,//企业规模 legalPerson: thisDetail.legalPerson,//法人 legalPersonIdCard: thisDetail.legalPersonIdCard,//法人身份证 legalPersonTel: thisDetail.legalPersonTel,//法人联系电话 legalPersonEmail: thisDetail.legalPersonEmail,//法人联系邮箱 highTechZone: thisDetail.highTechZone,//是否高新 listed: thisDetail.listed,//是否高新 international: thisDetail.international,//是否国际化 orgCode: thisDetail.orgCode,//社会统一机构 orgCodeUrl: thisDetail.orgCodeUrl ? splitUrl(thisDetail.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],//社会统一机构地址 businessScope: thisDetail.businessScope ? thisDetail.businessScope.split(',').filter((v) => v) : [],//业务范围 salesTarget: thisDetail.salesTarget ? thisDetail.salesTarget.split(',').filter((v) => v) : [],//销售目标企业 contacts: thisDetail.contacts,//主要联系人姓名 contactMobile: thisDetail.contactMobile,//主要联系人电话 investment: thisDetail.investment,//投资机构 businessAudit: thisDetail.businessAudit,//业务认证 auditStatus: thisDetail.auditStatus,//实名认证 intellectualProperty: thisDetail.intellectualProperty,//已有知识产权情况 yearSalesAmount: thisDetail.yearSalesAmount,//年度销售额 lastYearResearchAmount: thisDetail.lastYearResearchAmount,//上年度研发费用 assets: thisDetail.assets,//总资产 qualification: thisDetail.qualification,//企业资质情况 cooperationSituation: thisDetail.cooperationSituation,//企业与高校院所 informationMaintainer: thisDetail.informationMaintainer,//资料维护人 informationMaintainerName: thisDetail.informationMaintainerName,//资料维护人 coreTechnology: thisDetail.coreTechnology,//核心技术 accomplishSituation: thisDetail.accomplishSituation,//客户已完成项目情况 creditRating: thisDetail.creditRating ? thisDetail.creditRating.toString() : "",//信用等级 }); } }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //基本信息提交 newSubmit(e) { e.preventDefault(); if (!this.state.industry) { message.warning('请选择行业'); return false; }; if (!this.state.societyTag) { message.warning('请选择社会属性'); return false; }; if (!this.state.ProvinceCity[1]) { message.warning('请选择地区'); return false; }; if (!this.state.registeredCapital) { message.warning('请填写注册资本'); return false; }; if (!this.state.businessScope) { message.warning('请填写公司主营产品'); return false; }; if (!this.state.intellectualProperty) { message.warning('请填写已有知识产权情况'); return false; }; var reg = /^[1-9]\d*$|^0$/; if (this.state.consultationPrice) { if (this.state.consultationPrice.length > 6) { message.warning('咨询费用不超过6位数'); this.refs.consul.focus(); return false; }; if (!reg.test(this.state.consultationPrice)) { message.warning('咨询费用只能输入数字'); this.refs.consul.focus(); return false; } } this.state.data = []; this.setState({ selectedRowKeys: [], }); let theorgCodeUrl = []; if (this.state.orgCodeUrl.length) { let picArr = []; this.state.orgCodeUrl.map(function (item) { if (item.response && item.response.data && item.response.data.length) { picArr.push(item.response.data); } }); theorgCodeUrl = picArr.join(","); }; let thecompanyLogoUrl = []; if (this.state.companyLogoUrl.length) { let picArr = []; this.state.companyLogoUrl.map(function (item) { if (item.response && item.response.data && item.response.data.length) { picArr.push(item.response.data); } }); thecompanyLogoUrl = picArr.join(","); }; let years = []; let yearMonth = this.state.yearMonth != undefined ? new Date(this.state.yearMonth).toLocaleDateString() : ''; years = yearMonth.split('/'); this.setState({ loading: true }); $.ajax({ method: "post", dataType: "json", url: globalConfig.context + '/api/admin/customer/updateOrganizationCustomer', data: { id: this.state.detailId,//详情ID identifyName: this.state.identifyName,//客户名称 uid: this.state.uid,//客户ID societyTag: this.state.societyTag,//社会标签 companyLogoUrl: thecompanyLogoUrl.length != 0 ? thecompanyLogoUrl : '',//公司LOGO introduction: this.state.introduction,//介绍 industry: this.state.industry,//行业 locationProvince: (this.state.ProvinceCity)[0],//省 locationCity: (this.state.ProvinceCity)[1],//市 locationArea: (this.state.ProvinceCity)[2],//区 postalAddress: this.state.postalAddress,//通讯地址 contactsFixedTel: this.state.contactsFixedTel,//固定电话 contactsFax: this.state.contactsFax,//传真地址 registeredCapital: this.state.registeredCapital,//注册资金 enterpriseScale: this.state.enterpriseScale,//企业规模 legalPerson: this.state.legalPerson,//法人 legalPersonIdCard: this.state.legalPersonIdCard,//法人身份证 legalPersonTel: this.state.legalPersonTel,//法人联系电话 legalPersonEmail: this.state.legalPersonEmail,//法人联系邮箱 highTechZone: this.state.highTechZone,//是否高新 listed: this.state.listed,//是否高新 international: this.state.international,//是否国际化 orgCode: this.state.orgCode,//社会统一机构 orgCodeUrl: theorgCodeUrl.length != 0 ? theorgCodeUrl : '',//社会统一机构地址 businessScope: this.state.businessScope,//业务范围 contacts: this.state.contacts,//主要联系人姓名 contactMobile: this.state.contactMobile,//主要联系人电话 investment: this.state.investment,//投资机构 businessAudit: this.state.businessAudit,//业务认证 auditStatus: this.state.auditStatus,//实名认证 intellectualProperty: this.state.intellectualProperty,//已有知识产权情况 yearSalesAmount: this.state.yearSalesAmount,//年度销售额 lastYearResearchAmount: this.state.lastYearResearchAmount,//上年度研发费用 assets: this.state.assets,//总资产 qualification: this.state.qualification,//企业资质情况 cooperationSituation: this.state.cooperationSituation,//企业与高校院所 informationMaintainer: this.state.informationMaintainer,//资料维护人 informationMaintainerName: this.state.informationMaintainerName,//资料维护人 coreTechnology: this.state.coreTechnology,//核心技术 accomplishSituation: this.state.accomplishSituation,//客户已完成项目情况 creditRating: this.state.creditRating,//信用等级 } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('保存成功!'); this.visitCancel(); this.loadData(); } else { message.warning(data.error[0].message); } }.bind(this)); }, //整行点击 tableRowClick(record, index) { this.state.visitModul = true; this.details(record.id); }, //指定转交人自动补全 supervisor(e) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/listAdminByName", data: { adminName: 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)); }, //输入转交人输入框失去焦点是判断客户是否存在 selectAuto(value, options) { this.setState({ auto: value }) }, blurChange(e) { let theType = ''; let contactLists = this.state.customerArr || []; if (e) { contactLists.map(function (item) { if (item.name == e.toString()) { theType = item.id; } }); } this.setState({ theTypes: theType }) }, //值改变时请求客户名称 httpChange(e) { if (e.length >= 1) { this.supervisor(e); } this.setState({ auto: e }) }, //转交 changeAssigner() { if (this.state.theTypes) { this.setState({ selectedRowKeys: [], }); let id; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { id = rowItem.id; }; }; $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/updateInformationMaintainerr", data: { id: id, //客户ID aid: this.state.theTypes, //指定转交人的ID } }).done(function (data) { if (!data.error.length) { message.success('转交成功!'); this.setState({ auto: '', loading: false, }); } else { message.warning(data.error[0].message); }; this.loadData(this.state.ispage); }.bind(this)); } else { message.warning('请输入转交人姓名') } }, //详情打开 visitOk(e) { this.setState({ visitModul: false }); }, //详情关闭 visitCancel(e) { this.setState({ visitModul: false, callnub: "0" }); }, getOrgCodeUrl(e) { this.setState({ orgCodeUrl: e }); }, getCompanyLogoUrl(e) { this.setState({ companyLogoUrl: e }); }, componentWillReceiveProps(nextProps) { if (nextProps.ApiUrl != this.props.ApiUrl) { this.state.nameSearch = ''; this.state.addressSearch = []; this.state.provinceSearch = undefined; this.state.citySearch = undefined; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; this.loadData(null, nextProps.ApiUrl); }; }, callback(e) { if (e == '0') { this.setState({ callnub: e, }) } if (e == '1') { this.setState({ callnub: e, }) this.loadDatas(); } if (e == '2') { this.setState({ callnub: e, }) this.loadDatac(); } if (e == '3') { this.setState({ callnub: e, }) this.loadDatax(); } }, //发布成果 addClick() { this.state.RowData = {}; this.setState({ showDesc: true, }); }, //关闭发布成果 closeDesc(e, s) { this.state.showDesc = e; if (s) { this.loadDatas(); }; }, tableRowClickDate(record, index) { this.state.RowData = record; if (index != undefined) { this.setState({ showDesc: true }); } }, changeList(arr) { const newArr = []; this.state.columns.forEach(item => { arr.forEach(val => { if (val === item.title) { newArr.push(item); } }); }); this.setState({ changeList: newArr }); }, render() { const { RangePicker, MonthPicker } = DatePicker; const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const FormItem = Form.Item; const rowSelection = { selectedRowKeys: this.state.selectedRowKeys, onChange: (selectedRowKeys, selectedRows) => { this.setState({ modalVisible: false, selectedRows: selectedRows.slice(-1), selectedRowKeys: selectedRowKeys.slice(-1) }); }, onSelect: (recordt, selected, selectedRows) => { this.setState({ modalVisible: false, recordt: recordt.id }) }, }; const hasSelected = this.state.selectedRowKeys.length > 0; const dataSources = this.state.customerArr || []; const options = dataSources.map((group) => <Select.Option key={group.id} value={group.name}>{group.name}</Select.Option> ) const intentionState = this.props.intentionState || ''; return ( <div className="user-content" > <div className="content-title"> <span style={{ fontWeight: 900, fontSize: 16 }}>客户资料管理</span> </div> <Tabs defaultActiveKey="1" className="test"> <TabPane tab="搜索" key="1"> <div className="user-search"> <Input placeholder="客户名称" value={this.state.nameSearch} onChange={(e) => { this.setState({ nameSearch: e.target.value }); }} /> <Select placeholder="省" style={{ width: 80 }} value={this.state.provinceSearch} onChange={(e) => { this.setState({ provinceSearch: e }); }}> {this.state.Provinces} </Select> <span style={{ marginRight: '10px' }}> <Cascader options={citySelect()} value={this.state.addressSearch} placeholder="选择城市" onChange={(e, pre) => { this.setState({ addressSearch: e }) }} /> </span> <Select placeholder="资料是否完善" style={{ width: 120 }} value={this.state.dataGrade} onChange={(e) => { this.setState({ dataGrade: e }) }}> <Select.Option value="0" >未完善</Select.Option> <Select.Option value="1" >已完善</Select.Option> </Select> <RangePicker style={{ marginRight: '10px' }} value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null, this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]} onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} /> <Button type="primary" onClick={this.search}>搜索</Button> <Button onClick={this.reset}>重置</Button> </div> </TabPane> <TabPane tab="更改表格显示数据" key="2"> <div style={{ marginLeft: 10 }}> <ChooseList columns={this.state.columns} changeFn={this.changeList} changeList={this.state.changeList} top={55} margin={11} /> </div> </TabPane> </Tabs> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={ this.state.changeList ? this.state.changeList : this.state.columns } dataSource={this.state.dataSource} // rowSelection={rowSelection} pagination={this.state.pagination} onRowClick={this.tableRowClick} bordered size="small" /> </Spin> </div> <Modal className="customeDetails" footer='' title="客户资料" width='1200px' visible={this.state.visitModul} onOk={this.visitOk} onCancel={this.visitCancel} > <Tabs onChange={this.callback} activeKey={this.state.callnub}> <TabPane tab="基本信息" key="0"> <div> <Form layout="horizontal" onSubmit={this.newSubmit} id="demand-form"> <Spin spinning={this.state.loading}> <div style={{ fontSize: '18px', marginLeft: '50px', marginTop: '15px', marginBottom: '10px', color: "red", fontWeight: "bold" }}>基本信息</div> <div className="clearfix" > <FormItem className="half-item" {...formItemLayout} label="客户姓名" > <span>{this.state.identifyName}</span> <EnterpriseNameChange type='journal' style={{ marginLeft: 10 }} enterpriseId={this.state.uid} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="资料所属人" > <span>{this.state.informationMaintainerName}</span> </FormItem> </div> <div className="clearfix" > <FormItem className="half-item" {...formItemLayout} label="企业行业"> <Select placeholder="选择行业" value={this.state.industry} style={{ width: '95%' }} onChange={(e) => { this.setState({ industry: e }) }} disabled={true}> { industry.map(function (item) { return <Select.Option key={item.value} >{item.key}</Select.Option> }) } </Select> <span style={{ color: 'red', marginLeft: '5px' }}>*</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="社会属性" > <Select placeholder="客户社会属性" value={this.state.societyTag} style={{ width: '95%' }} onChange={(e) => { this.setState({ societyTag: e }) }} disabled={true}> { socialAttribute.map(function (item) { return <Select.Option key={item.value} >{item.key}</Select.Option> }) } </Select> <span style={{ color: 'red', marginLeft: '5px' }}>*</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="省-市-区" > <Cascader options={areaSelect()} value={this.state.ProvinceCity} placeholder="选择城市" style={{ width: '95%' }} onChange={(e, pre) => { this.setState({ ProvinceCity: e }) }} disabled={true} /> <span style={{ color: 'red', marginLeft: '5px' }}>*</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="注册资本" > <Input placeholder="注册资本" style={{ width: '90%' }} value={this.state.registeredCapital} onChange={(e) => { this.setState({ registeredCapital: e.target.value }) }} disabled={true} />万 <span style={{ color: 'red', marginLeft: '5px' }}>*</span> </FormItem> <div className='clearfix'> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 20 }} label="主营产品" > {this.state.businessScope.map((tag) => { const isLongTag = tag.length > 20; const tagElem = ( <Tag key={tag}> {isLongTag ? `${tag.slice(0, 20)}...` : tag} </Tag> ); return isLongTag ? <Tooltip title={tag} key={tag}>{tagElem}</Tooltip> : tagElem; })} </FormItem> </div> <div className='clearfix'> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 20 }} label="销售目标企业" > {this.state.salesTarget.map((tag) => { const isLongTag = tag.length > 20; const tagElem = ( <Tag key={tag}> {isLongTag ? `${tag.slice(0, 20)}...` : tag} </Tag> ); return isLongTag ? <Tooltip title={tag} key={tag}>{tagElem}</Tooltip> : tagElem; })} </FormItem> </div> <div style={{ fontSize: '18px', marginLeft: '50px', marginTop: '15px', marginBottom: '10px', color: "red", fontWeight: "bold" }}>企业资料</div> <FormItem className="half-item" {...formItemLayout} label="通信地址" > <Input placeholder="客户通信地址" value={this.state.postalAddress} onChange={(e, pre) => { this.setState({ postalAddress: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="固定电话" > <Input placeholder="客户固定电话" value={this.state.contactsFixedTel} onChange={(e) => { this.setState({ contactsFixedTel: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="客户传真" > <Input placeholder="客户传真" value={this.state.contactsFax} onChange={(e) => { this.setState({ contactsFax: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业人数" > <Input placeholder="单位规模" value={this.state.enterpriseScale} onChange={(e) => { this.setState({ enterpriseScale: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人名称" > <Input placeholder="法人名称" value={this.state.legalPerson} onChange={(e) => { this.setState({ legalPerson: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人身份证" > <Input placeholder="法人身份证" value={this.state.legalPersonIdCard} onChange={(e) => { this.setState({ legalPersonIdCard: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="联系人" > <Input placeholder="主要联系人" value={this.state.contacts} onChange={(e) => { this.setState({ contacts: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="联系人号码" > <Input placeholder="主要联系人号码" value={this.state.contactMobile} onChange={(e) => { this.setState({ contactMobile: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人电话" > <Input placeholder="法人电话" value={this.state.legalPersonTel} onChange={(e) => { this.setState({ legalPersonTel: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人邮箱" > <Input placeholder="法人电子邮箱" value={this.state.legalPersonEmail} onChange={(e) => { this.setState({ legalPersonEmail: e.target.value }) }} disabled={true} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="社会统一信用机构代码" > <Input placeholder="社会统一信用机构代码" value={this.state.orgCode} onChange={(e) => { this.setState({ orgCode: e.target.value }) }} disabled={true} /> </FormItem> <div className='clearfix'> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="客户简介" > <Input type="textarea" rows={3} value={this.state.introduction} onChange={(e, pre) => { this.setState({ introduction: e.target.value }) }} disabled={true} /> </FormItem> </div> <div className="clearfix pictures"> <FormItem style={{ display: 'inline-block', width: '350px', marginTop: '20px', marginLeft: '95px' }} labelCol={{ span: 8 }} wrapperCol={{ span: 10 }} label="机构证书(PIC)" > <PicturesWall domId={'crmAll1'} fileList={this.getOrgCodeUrl} pictureUrl={this.state.orgCodeUrl} /> <p>建议:图片要清晰。</p> </FormItem> <FormItem style={{ display: 'inline-block', width: '350px', marginTop: '20px', marginTop: '20px' }} labelCol={{ span: 8 }} wrapperCol={{ span: 10 }} label="单位LOGO" > <PicturesWall domId={'crmAll2'} fileList={this.getCompanyLogoUrl} pictureUrl={this.state.companyLogoUrl} /> <p>建议:图片要清晰。</p> </FormItem> </div> <div style={{ fontSize: '18px', marginLeft: '50px', marginTop: '15px', marginBottom: '10px', color: "red", fontWeight: "bold" }}>重要资料</div> <div className='clearfix' > <FormItem className="half-item" {...formItemLayout} label="客户信用等级" > <Select placeholder="客户信用等级" value={this.state.creditRating} onChange={(e) => { this.setState({ creditRating: e }) }} disabled={true}> { slcRedit.map(function (item) { return <Select.Option key={item.value} >{item.key}</Select.Option> }) } </Select> </FormItem> <div className='clearfix'> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 19 }} label="企业核心技术" > <Input type="textarea" rows={3} value={this.state.coreTechnology} onChange={(e, pre) => { this.setState({ coreTechnology: e.target.value }) }} disabled={true} /> </FormItem> </div> <div className='clearfix'> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 19 }} label="企业资质情况" > <Input type="textarea" rows={3} value={this.state.qualification} placeholder="请按如下格式填写:资质名称+获得时间+拥有人+发证机构" onChange={(e, pre) => { this.setState({ qualification: e.target.value }) }} disabled={true} /> </FormItem> </div> <div className='clearfix'> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 19 }} label="高企合作情况" > <Input type="textarea" rows={3} value={this.state.cooperationSituation} onChange={(e, pre) => { this.setState({ cooperationSituation: e.target.value }) }} disabled={true} /> </FormItem> </div> </div> </div> </Spin> </Form> </div> </TabPane> <TabPane tab="知识产权列表" key="1"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsDate} dataSource={this.state.dataSourceDate} rowSelection={rowSelection} pagination={this.state.paginationDate} onRowClick={this.tableRowClickDate} /> </Spin> </TabPane> <TabPane tab="财务信息" key="2"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsc} dataSource={this.state.dataSourcec} rowSelection={rowSelection} onRowClick={this.tableRowClickDatec} /> </Spin> </TabPane> <TabPane tab="项目信息" key="3"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsx} dataSource={this.state.dataSourcex} rowSelection={rowSelection} onRowClick={this.tableRowClickDatex} /> </Spin> </TabPane> </Tabs> </Modal> <TechAchievementDesc data={this.state.RowData} detailApiUrl={this.props['data-detailApiUrl']} achievementCategoryOption={this.state.achievementCategoryOption} showDesc={this.state.showDesc} uid={this.state.uid} closeDesc={this.closeDesc} loadDatas={this.loadDatas} /> </div > ); } })); export default IntentionCustomer;