import React, { Component } from "react"; import { View, Input, Button, Text, Picker, RadioGroup, Label, Radio } from "@tarojs/components"; import Taro, { getCurrentInstance } from "@tarojs/taro"; import { getProvince } from '../../utils/tools/index' import { AtSearchBar, AtTextarea, AtModal, AtModalHeader, AtModalContent, AtModalAction, AtInput, AtButton, AtInputNumber } from "taro-ui"; import Skeleton from "taro-skeleton"; import { queryByUidAll, updateUser, addOneContact, findCustomerContacts, updateMainContact, limitUser, getBusinessProjectByName, addProject, queryProjectList, delProject } from "../../utils/servers/servers"; import "./index.less"; import "taro-ui/dist/style/components/textarea.scss"; import "taro-ui/dist/style/components/modal.scss"; import "taro-ui/dist/style/components/timeline.scss"; import "taro-ui/dist/style/components/calendar.scss"; import "taro-ui/dist/style/components/input.scss"; import "taro-ui/dist/style/components/search-bar.scss"; import MessageNoticebar from "../../components/common/messageNoticebar"; import { industry, channelTypeList, yearList, addressList } from '../../utils/tools/config'; import { getChannel } from "../../utils/tools"; import Superior from "../../components/common/superior"; import CheckboxPicker from "../../components/common/CheckboxPicker"; import AddressPicker from "../../components/common/addressPicker" import InteractList from "./components/InteractList"; import CustomerProjectSelect from '../../components/common/CustomerProjectSelect'; import address from '../../utils/tools/city.js' class CustomerProfile extends Component { $instance = getCurrentInstance(); constructor(props) { super(props); this.state = { upType: -1, isOpened: false, dtails: {}, projectList: [], info: {}, sector: {}, isAdd: false, obj: {}, userList: [], allProjectList: [], options: [], checkProject: [], checkOptions: [], isSuperior: false, channe: {}, isMask: false, addressPickerShow: false, region: [], customItem: [], multiplePickerShow: false, multiplePickerTitle: '', multiplePickerType: '', multiplePickerOptions: [], multiplePickerCheckedList: [], addItemShow: false, addItemType: '', addItemTitle: '', addItemInputVal: '', interactShow: false, interactShowType: '', interactTitle: '', interactList: [], checkCompShow: false, checkCompList: [], currAddress: [], pageIsReadonly: false }; this.queryByUidAll = this.queryByUidAll.bind(this); this.update = this.update.bind(this); this.add = this.add.bind(this); this.getUserList = this.getUserList.bind(this); this.getBusinessProjectByName = this.getBusinessProjectByName.bind(this); this.onSearchChange = this.onSearchChange.bind(this); this.handleOpenMultiplePicker = this.handleOpenMultiplePicker.bind(this); this.handleMultipleConfirm = this.handleMultipleConfirm.bind(this); this.handleAddItemSave = this.handleAddItemSave.bind(this); this.handleCloseAddItemDialog = this.handleCloseAddItemDialog.bind(this); } componentDidMount() { this.setState({ isMask: false }) this.queryByUidAll(); this.getProjectList(); if (!this.isLogin()) { Taro.setStorageSync('currentPage', `/pages/customerProfile/index?id=${this.$instance.router.params.id}`) } let paramReadonly = this.$instance.router.params.readonly; this.setState({ pageIsReadonly: paramReadonly ? Boolean(paramReadonly) : false }); } addCommas(num) { let newNum = num.toString().replace(/,/g, ''); if (num.toString().length > 1) { newNum = newNum.toString().replace(/^0+/, ''); } return newNum.replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'); } openAddressPicker() { const { dtails } = this.state; let currAddress = []; if (dtails.locationProvince && dtails.locationCity && dtails.locationArea) { let provIdx = 0, cityIdx = 0, areaIdx = 0; addressList.map((provItem, idx1) => { if (provItem.id == dtails.locationProvince) { provIdx = idx1; provItem.cityList.map((cityItem, idx2) => { if (cityItem.id == dtails.locationCity) { cityIdx = idx2; cityItem.areaList.map((areaItem, idx3) => { if (areaItem.id == dtails.locationArea) { areaIdx = idx3; } }) } }) } }) currAddress = [provIdx, cityIdx, areaIdx]; } this.setState({ addressPickerShow: true, currAddress }) } toggleAddressPicker(e) { if (!Object.keys(e).length) { this.setState({ addressPickerShow: false }); return; } const addressIds = getProvince(e.province, e.city, e.area); const { dtails } = this.state; dtails.locationProvince = addressIds[0]; dtails.locationProvinceName = e.province; dtails.locationCity = addressIds[1]; dtails.locationCityName = e.city; dtails.locationArea = addressIds[2]; dtails.locationAreaName = e.area; this.setState({ dtails, addressPickerShow: false }); } handleSelComp() { const { dtails } = this.state; let externalInvestList = []; if (dtails.externalInvestName) { let externalInvestNameList = dtails.externalInvestName.split(','); let externalInvestIdList = dtails.externalInvestId.split(','); externalInvestList = externalInvestNameList.map((name, idx) => { return { id: externalInvestIdList[idx] || 0, name } }); } this.setState({ checkCompShow: true, checkCompList: externalInvestList }); } handleCheckCompConfirm(data) { let externalInvestId = data.map(item => item.id).join(','); let externalInvestName = data.map(item => item.name).join(','); this.setState({ dtails: { ...this.state.dtails, externalInvestId, externalInvestName } }); } handleOpenMultiplePicker(type) { let multiplePickerOptions = []; let multiplePickerTitle = ''; let multiplePickerCheckedList = []; const { dtails, info } = this.state; switch (type) { case 'industry': // 企业所属行业 multiplePickerOptions = industry; multiplePickerCheckedList = !!dtails.industry ? dtails.industry.toString().split(',') : []; multiplePickerTitle = '请选择企业所属行业'; break; case 'externalInvestIndustry': // 对外投资控股的行业 multiplePickerOptions = industry; multiplePickerCheckedList = !!dtails.externalInvestIndustry ? dtails.externalInvestIndustry.toString().split(',') : []; multiplePickerTitle = '请选择对外投资控股的行业'; break; case 'examineStatusOther': // 复审年份 multiplePickerOptions = yearList; multiplePickerCheckedList = info.examineStatusOther ? info.examineStatusOther.split(',') : []; multiplePickerTitle = '请选择年份'; break; case 'buyStatusOther': // 复购/复审年份 multiplePickerOptions = yearList; multiplePickerCheckedList = info.buyStatusOther ? info.buyStatusOther.split(',') : []; multiplePickerTitle = '请选择年份'; break; default: break; } this.setState({ multiplePickerShow: true, multiplePickerType: type, multiplePickerTitle, multiplePickerOptions, multiplePickerCheckedList: multiplePickerCheckedList.map(item => Number(item)) }) } handleMultipleConfirm(selectedIds, selectedLabels) { const { multiplePickerType, dtails, info } = this.state; switch (multiplePickerType) { case "industry": // 企业所属行业 dtails.industry = selectedIds.join(','); dtails.industryName = selectedLabels.join(','); this.setState({ dtails }) break; case "externalInvestIndustry": // 对外投资控股的行业 dtails.externalInvestIndustry = selectedIds.join(','); dtails.externalInvestIndustryName = selectedLabels.join(','); this.setState({ dtails }) break; case 'examineStatusOther': info.examineStatusOther = selectedIds.join(','); this.setState({ info }); break; case 'buyStatusOther': info.buyStatusOther = selectedIds.join(','); this.setState({ info }); break; default: break; } } bindRegionChange(e) { this.setState({ region: e.detail.value }) } isLogin() { return !!Taro.getStorageSync('userInfor'); } onShareAppMessage() { this.limitUser(); return { title: "客户档案", path: "/pages/customerProfile/index?id=" + this.$instance.router.params.id, }; } // 客户档案详情 queryByUidAll(updateType) { queryByUidAll( this.$instance.router.params.notRequired, { id: this.$instance.router.params.id, } ) .then((v) => { if (v.error.length === 0) { if (updateType === 'updateContact') { // 只更新面谈联系信息 this.setState({ dtails: { ...this.state.dtails, contactList: v.data.contactList } }); return; } let dtailsData = { ...v.data, companyCount: this.addCommas(v.data.companyCount || 0), socialSecurityCount: this.addCommas(v.data.socialSecurityCount || 0), externalInvestCount: this.addCommas(v.data.externalInvestCount || 0), financialRevenue: this.addCommas(v.data.financialRevenue || 0), financialTax: this.addCommas(v.data.financialTax || 0), financialProperty: this.addCommas(v.data.financialProperty || 0), financialRd: this.addCommas(v.data.financialRd || 0), enterpriseCount: this.addCommas(v.data.enterpriseCount || 0), earlyCommunication: '', customerDemand: '', interviewIdeas: '', interviewPurpose: '', interviewRecommend: '', interviewFeedback: '', followUpPlan: '' } let patentCount = this.countZlNum(dtailsData); this.setState({ dtails: { ...dtailsData, patentCount } }) } else { setTimeout(() => { Taro.navigateBack({ delta: 1 }) }, 1800); Taro.showToast({ title: v.error[0].message, icon: "none", duration: 1800, }); } }) .catch((err) => { Taro.showToast({ title: "系统错误,请稍后再试", icon: "none" }); }); } validParams(params) { const { dtails } = this.state; let flag = true; let message = ''; if (dtails.newChannel == 1) { // 渠道客户 if (!params.channelType) { flag = false; message = '请选择渠道性质'; } else if (!params.enterpriseCount) { flag = false; message = '请输入渠道所覆盖企业数'; } else if (!params.channelIndicators) { flag = false; message = '请输入渠道考核指标'; } } else { if (!params.locationProvince) { message = '请选择企业所在地省市区'; flag = false; } else if (!params.industry) { message = '请选择企业所属行业'; flag = false; } else if (!params.businessScope) { message = '主营产品不能为空'; flag = false; } else if (params.companyCount === '' || params.companyCount === undefined || params.companyCount === null) { message = '请输入母/子公司数'; flag = false; } else if (params.socialSecurityCount === '' || params.socialSecurityCount === undefined || params.socialSecurityCount === null) { message = '请输入社保人数,并且不能为0'; flag = false; } else if (!Number(params.financialRevenue)) { message = '请输入营收数据,并且不能为0'; flag = false; } else if (!Number(params.financialTax)) { message = '请输入税收数据,并且不能为0'; flag = false; } else if (!Number(params.financialProperty)) { message = '请输入资产数据,并且不能为0'; flag = false; } else if (!Number(params.financialRd)) { message = '请输入研发费用,并且不能为0'; flag = false; } } return { flag, message }; } onSaveAllData() { const { dtails } = this.state; let params = { id: dtails.id, uid: dtails.uid, locationProvince: dtails.locationProvince, locationProvinceName: dtails.locationProvinceName, locationCity: dtails.locationCity, locationCityName: dtails.locationCityName, locationArea: dtails.locationArea, locationAreaName: dtails.locationAreaName, type: 0, // 1、更新档案和面谈,0、只更新档案 }; if (dtails.newChannel == 1) { // 渠道客户 params = { ...params, channelType: dtails.channelType, enterpriseCount: dtails.enterpriseCount.replace(/,/g, ''), channelIndicators: dtails.channelIndicators, }; } else { params = { ...params, industry: dtails.industry, industryName: dtails.industryName, // earlyCommunication: dtails.earlyCommunication, //     customerDemand: dtails.customerDemand, //     interviewIdeas: dtails.interviewIdeas, //     interviewPurpose: dtails.interviewPurpose, //     interviewRecommend: dtails.interviewRecommend, //     interviewFeedback: dtails.interviewFeedback, //     followUpPlan: dtails.followUpPlan, patentCount: dtails.patentCount, inventionPatentCount: dtails.inventionPatentCount, utilityModelCount: dtails.utilityModelCount, appearancePatentCount: dtails.appearancePatentCount, softwareWorksCount: dtails.softwareWorksCount, otherCount: dtails.otherCount, //     financialData: dtails.financialData, companyCount: dtails.companyCount.replace(/,/g, ''), socialSecurityCount: dtails.socialSecurityCount.replace(/,/g, ''), externalInvestCount: dtails.externalInvestCount.replace(/,/g, ''), externalInvestIndustry: dtails.externalInvestIndustry, externalInvestIndustryName: dtails.externalInvestIndustryName, externalInvestId: dtails.externalInvestId, externalInvestName: dtails.externalInvestName, financialRevenue: dtails.financialRevenue.replace(/,/g, ''), financialTax: dtails.financialTax.replace(/,/g, ''), financialProperty: dtails.financialProperty.replace(/,/g, ''), financialRd: dtails.financialRd.replace(/,/g, ''), standard: dtails.standard, businessScope: dtails.businessScope, }; } for (let key in params) { if (params[key] === undefined || params[key] === 'undefined' || params[key] === null || params[key] === 'null') { delete params[key]; } } const { flag, message } = this.validParams(params); if (!flag) { Taro.showToast({ title: message, icon: "none", }); return; } updateUser(params).then((v) => { if (v.error.length === 0) { Taro.showToast({ title: "修改成功", }); setTimeout(() => { //表示回到上一页面 Taro.navigateBack({ delta: 1 }); }, 1000) } else { Taro.showToast({ title: v.error[0].message, icon: "none", }); } }) } // 计算专利总数 countZlNum({ inventionPatentCount, utilityModelCount, appearancePatentCount, softwareWorksCount, otherCount }) { let count = 0; if (inventionPatentCount && !isNaN(inventionPatentCount)) { count += Number(inventionPatentCount); } if (utilityModelCount && !isNaN(utilityModelCount)) { count += Number(utilityModelCount); } if (appearancePatentCount && !isNaN(appearancePatentCount)) { count += Number(appearancePatentCount); } if (softwareWorksCount && !isNaN(softwareWorksCount)) { count += Number(softwareWorksCount); } if (otherCount && !isNaN(otherCount)) { count += Number(otherCount); } return count; } // 修改客户档案 update() { // const { upType, info } = this.state // console.log(info) // let tipList = [ // { key: "inventionPatentCount", value: "请填写发明专利数" }, // { key: "utilityModelCount", value: "请填写实用新型数" }, // { key: "appearancePatentCount", value: "请填写外观专利数" }, // { key: "softwareWorksCount", value: "请填写软著数" }, // { key: "otherCount", value: "请填写其他数量" }, // { key: "financialData", value: "请填写财务数据" }, // { key: "earlyCommunication", value: "请填写前期沟通" }, // { key: "interviewIdeas", value: "请填写面谈思路及目的" }, // { key: "interviewDistribution", value: "请填写主要面谈人及分工" }, // { key: "enterpriseCount", value: "请填写覆盖企业数" }, // { key: "channelIndicators", value: "请填写渠道考核指标" }, // ] // if (!info.id) { // delete info.id // } // for (let i in info) { // if (!info[i] && info[i] !== 0) { // for (var j = 0; j < tipList.length; j++) { // if (tipList[j].key == i) { // Taro.showToast({ // title: tipList[j].value, // icon: "none", // }); // } // } // return // } else if (info[i] == 0) { // if (i == "channelType") { // Taro.showToast({ // title: "请选择渠道类型", // icon: "none", // }); // return // } // } // if ((i == "financialData" || i == "earlyCommunication" || i == "interviewIdeas" || i == "interviewDistribution") // && info[i].length < 20) { // Taro.showToast({ // title: "至少20字以上", // icon: "none", // }); // return // } // } // updateUserDate(upType, info).then((v) => { // if (v.error.length === 0) { // Taro.showToast({ // title: "修改成功", // }); // this.setState({ // isOpened: false // }) // this.queryByUidAll() // } else { // Taro.showToast({ // title: v.error[0].message, // icon: "none", // }); // } // }).catch(() => { // }) if (this.state.upType == 5) { this.postAddProject(); } else { if (this.state.upType == 1) { // 计算专利 let patentCount = this.countZlNum(this.state.info); this.setState({ isOpened: false, dtails: { ...this.state.dtails, ...this.state.info, patentCount } }) } else { this.setState({ isOpened: false, dtails: { ...this.state.dtails, ...this.state.info } }) } } } postAddProject() { const { checkProject, dtails, info } = this.state; const params = { uid: dtails.uid }; if (!checkProject.length) { Taro.showToast({ title: "请选择要添加的项目", icon: "none", }); return; } else { params.pid = checkProject[0].id; if (checkProject[0].cSort == 9) { if (!info.examineStatus) { Taro.showToast({ title: "请选择审核状态", icon: "none", }); return; } else if (info.examineStatus == 2 && !info.examineStatusOther) { Taro.showToast({ title: "请选择复审年份", icon: "none", }); return; } else if (info.examineStatus == 2 && info.examineStatusOther.split(',').length > 1) { Taro.showToast({ title: "复审年份只能选择一个", icon: "none", }); return; } else { params.examineStatus = info.examineStatus; params.examineStatusOther = info.examineStatus == 2 ? info.examineStatusOther : ''; } } else if (checkProject[0].cSort == 6) { if (!info.buyStatus) { Taro.showToast({ title: "请选择复购状态", icon: "none", }); return; } else if (info.buyStatus == 2 && !info.buyStatusOther) { Taro.showToast({ title: "请选择复购/复审年份", icon: "none", }); return; } else { params.buyStatus = info.buyStatus; params.buyStatusOther = info.buyStatus == 2 ? info.buyStatusOther : ''; } } } addProject(params).then(res => { if (res.error.length == 0) { Taro.showToast({ title: "项目新增成功!", }); this.setState({ isOpened: false, checkProject: [] }) this.getProjectList(); } else { Taro.showToast({ title: v.error[0].message, icon: "none" }); } }) } /** * 获取项目列表 * @param {*} uid 客户编号 */ getProjectList(uid) { const params = { uid: this.$instance.router.params.id, pageNo: 1, pageSize: 9999 } queryProjectList(params).then(res => { if (!res.error.length) { this.setState({ projectList: res.data.list }); } }) } handleDelProject(data) { delProject(data.id, data).then(res => { if (!res.error.length) { Taro.showToast({ title: "删除成功!", }); this.getProjectList(); } else { Taro.showToast({ title: v.error[0].message, icon: "none" }); } }) } // 新建联系人 add() { let data = this.state.obj for (let i in data) { if (!data[i] && data[i] !== 0) { Taro.showToast({ title: "请完善信息", icon: "none", }); return } else if ('name,position,department'.indexOf(i) > -1) { if (!data[i].match(/^[\D].*[\u4e00-\u9fff]+$/)) { let keyObjName = { name: "姓名", position: "职位", department: "部门" }; Taro.showToast({ title: `请输入正确的${keyObjName[i]},不能以数字开头,且至少包含一个汉字`, icon: "none", }); return } } else if (i == "mobile") { if (!(/^1[3-9]\d{9}$/.test(data[i]))) { Taro.showToast({ title: "请输入正确地手机号", icon: "none", }); return } } } data.major = 1 addOneContact(data).then((v) => { if (v.error.length === 0) { Taro.showToast({ title: "添加成功", }); this.setState({ isAdd: false }) this.queryByUidAll('updateContact') } else { Taro.showToast({ title: v.error[0].message, icon: "none", }); } }).catch(() => { }) } // 项目列表 getBusinessProjectByName(val) { getBusinessProjectByName({ businessName: val || "", }) .then((v) => { if (v.error.length === 0) { let theArr = []; if (v.data.length > 0) { for (let i = 0; i < v.data.length; i++) { let thisdata = v.data[i]; theArr.push({ value: thisdata.id, label: thisdata.bname, }); }; } this.setState({ allProjectList: v.data, options: theArr }) } else { Taro.showToast({ title: v.error[0].message, icon: "none" }); } }) .catch((err) => { Taro.showToast({ title: "系统错误,请稍后再试", icon: "none" }); }); } onSearchChange(value) { this.setState({ value, }); } getUserList() { findCustomerContacts({ uid: this.$instance.router.params.id, }) .then((v) => { if (v.error.length === 0) { this.setState({ userList: v.data || [] }) } else { Taro.showToast({ title: v.error[0].message, icon: "none" }); } }) .catch((err) => { Taro.showToast({ title: "系统错误,请稍后再试", icon: "none" }); }); } updateMainContact(id) { updateMainContact({ uid: this.$instance.router.params.id, ocbId: id, }).then((v) => { if (v.error.length === 0) { Taro.showToast({ title: "设置成功", }); this.getUserList() } else { Taro.showToast({ title: v.error[0].message, icon: "none", }); } }).catch(() => { }) } limitUser() { limitUser({ uid: this.$instance.router.params.id, // hours: 1, }).then((v) => { if (v.error.length === 0) { } else { Taro.showToast({ title: v.error[0].message, icon: "none", }); } }).catch(() => { }) } addItemDialog(type) { let title; switch (type) { case 'externalInvestName': // 对外投资控股的企业名称 title = '添加对外投资控股的企业名称'; break; default: break; } this.setState({ addItemShow: true, addItemType: type, addItemTitle: title }); } handleCloseAddItemDialog() { this.setState({ addItemShow: false, addItemType: '', addItemInputVal: '' }); } handleAddItemSave() { switch (this.state.addItemType) { case 'externalInvestName': const { dtails } = this.state; let externalInvestName = dtails.externalInvestName || ''; let externalInvestNameArr = externalInvestName.split(',').filter(item => !!item); externalInvestNameArr.push(this.state.addItemInputVal); dtails.externalInvestName = externalInvestNameArr.join(','); this.setState({ dtails }, () => { this.handleCloseAddItemDialog(); }); break; default: break; } } openInteractHis(type) { let interactTitle; let interactList = this.state.dtails.interviewList; switch (type) { case 'earlyCommunication': interactTitle = '客户的难处历史记录'; break; case 'customerDemand': interactTitle = '客户的需求历史记录'; break; case 'interviewIdeas': interactTitle = '面谈思路历史记录'; break; case 'interviewPurpose': interactTitle = '面谈达成的目的历史记录'; break; case 'interviewRecommend': interactTitle = '经理/上级面谈建议历史记录'; break; case 'interviewFeedback': interactTitle = '面谈后反馈历史记录'; interactList = interactList.slice(1, interactList.length); break; case 'followUpPlan': interactTitle = '后续跟进计划历史记录'; interactList = interactList.slice(1, interactList.length); break; default: break; } this.setState({ interactShow: true, interactShowType: type, interactTitle, interactList }); } renderProjectItemName(data) { let name = data.name; if (!!data.buyStatus) { // 会员项目 if (data.buyStatus == 1) { name = name + `(新购)`; } else if (data.buyStatus == 2) { name = name + `(复购${data.buyStatusOther})`; } } else if (!!data.examineStatus) { // 高新项目 if (data.examineStatus == 1) { name = name + `(初次审核)`; } else if (data.examineStatus == 2) { name = name + `(${data.examineStatusOther}年复审)`; } } return name; } render() { const { dtails, upType, info, obj, userList } = this.state; return ( {Object.keys(dtails).length === 0 ? ( ) : ( {dtails.nickname}   {["未签单", "已签单"][dtails.signBills]} {dtails.myUser == 1 && } {/* 分享 */} { e.stopPropagation() this.setState({ isSuperior: true }) }} >上级指导 { this.state.isSuperior && { this.setState({ isSuperior: false }) }} /> } { e.stopPropagation() Taro.navigateTo({ url: "/pages/situation/index?id=" + this.$instance.router.params.id + "¬Required=" + this.$instance.router.params.notRequired, }); }} >公出记录 {dtails.orgCode} {dtails.createTime} { dtails.newChannel == 1 ? 渠道档案 企业所在地省市区: { this.state.pageIsReadonly ? ( {dtails.locationProvince ? `${dtails.locationProvinceName}-${dtails.locationCityName}-${dtails.locationAreaName}` : ''} ) : ( this.openAddressPicker()}> {dtails.locationProvince ? `${dtails.locationProvinceName}-${dtails.locationCityName}-${dtails.locationAreaName}` : '请选择'} ) } 渠道类别: { this.state.pageIsReadonly ? ( { getChannel(dtails.channelType) } ) : ( { const { dtails } = this.state; dtails.channelType = e.detail.value; this.setState({ dtails }) }}> {!getChannel(dtails.channelType) ? "请选择" : getChannel(dtails.channelType)} ) } 渠道企业数: { dtails.enterpriseCount = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 渠道考核指标: { this.setState({ dtails: Object.assign(dtails, { channelIndicators: e, }), }) }} maxLength={200} placeholder='请填写渠道考核指标~' disabled={this.state.pageIsReadonly} /> 首次面谈时间: { dtails.interviewList.length ? ( { dtails.interviewList[dtails.interviewList.length - 1].createTime } ) : ( 暂无面谈记录 ) } 主要面谈联系信息: { !this.state.pageIsReadonly && dtails.myUser == 1 && { e.stopPropagation() this.getUserList(); this.setState({ isAdd: true, obj: { uid: this.$instance.router.params.id, name: "", position: "", department: "", mobile: "", } }) }} > 新增 } { !!dtails.contactList && dtails.contactList.map((v, k) => {v.name}  {v.position}  {v.department}  {v.mobile} ) } 已面谈项目: { this.state.projectList.map(item => { return {this.renderProjectItemName(item)} {/* {this.handleDelProject(item)}} /> */} }) } : 企业档案表 企业所在地省市区: { this.state.pageIsReadonly ? ( {dtails.locationProvince ? `${dtails.locationProvinceName}-${dtails.locationCityName}-${dtails.locationAreaName}` : ''} ) : ( this.openAddressPicker()}> {dtails.locationProvince ? `${dtails.locationProvinceName}-${dtails.locationCityName}-${dtails.locationAreaName}` : '请选择'} ) } 企业所属行业: { this.state.pageIsReadonly ? ( { this.state.dtails.industryName } ) : ( this.handleOpenMultiplePicker('industry')}> {this.state.dtails.industryName || '请选择'} )} 主营产品: { dtails.businessScope = value; this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 母/子公司数: { dtails.companyCount = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 社保人数: { dtails.socialSecurityCount = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 对外投资控股的企业数: { dtails.externalInvestCount = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 对外投资控股的行业: { this.state.pageIsReadonly ? ( { dtails.externalInvestIndustryName } ) : ( this.handleOpenMultiplePicker('externalInvestIndustry')}> { dtails.externalInvestIndustryName || '请选择' } ) } 对外投资控股的企业名称: { this.state.pageIsReadonly ? ( { dtails.externalInvestName } ) : ( this.handleSelComp()}> {dtails.externalInvestName || '请选择'} ) } 首次面谈时间: { dtails.interviewList.length ? ( { dtails.interviewList[dtails.interviewList.length - 1].createTime } ) : ( 暂无面谈记录 ) } 主要面谈联系信息: { !this.state.pageIsReadonly && dtails.myUser == 1 && { e.stopPropagation() this.getUserList(); this.setState({ isAdd: true, obj: { uid: this.$instance.router.params.id, name: "", position: "", department: "", mobile: "", } }) }} > 新增 } { !!dtails.contactList && dtails.contactList.map((v, k) => {v.name}  {v.position}  {v.department}  {v.mobile} {this.state.isMask && } ) } 已面谈项目: { this.state.projectList.map(item => { return {this.renderProjectItemName(item)} {/* {this.handleDelProject(item)}} /> */} }) } 企业情况 1.知识产权情况 (专利信息、标准、专利、软著) { !this.state.pageIsReadonly && dtails.myUser == 1 && { e.stopPropagation() this.setState({ upType: 1, isOpened: true, info: { uid: this.$instance.router.params.id, id: dtails.id, inventionPatentCount: dtails.inventionPatentCount || 0, utilityModelCount: dtails.utilityModelCount || 0, appearancePatentCount: dtails.appearancePatentCount || 0, softwareWorksCount: dtails.softwareWorksCount || 0, otherCount: dtails.otherCount || 0, } }) }} >修改 } 专利 {dtails.patentCount || 0}    其中发明专利 {dtails.inventionPatentCount || 0}    实用新型 {dtails.utilityModelCount || 0}    外观设计 {dtails.appearancePatentCount || 0}    软著 {dtails.softwareWorksCount || 0}    标准 {dtails.standard == 1 ? '有' : '无'}    其他类型 {dtails.otherCount || 0}    2.财务数据 营收(万元): { dtails.financialRevenue = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 税收(万元): { dtails.financialTax = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 资产(万元): { dtails.financialProperty = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> 研发费用(万元): { dtails.financialRd = this.addCommas(value); this.setState({ dtails }) }} cursor={-1} disabled={this.state.pageIsReadonly} /> } { !this.state.pageIsReadonly && ( 保存 ) } {/* { dtails.newChannel == 1 ? 面谈前渠道情况 面谈项目 { dtails.myUser == 1 && { e.stopPropagation() this.getBusinessProjectByName("") this.setState({ upType: 5, isOpened: true, info: { uid: this.$instance.router.params.id, intendedProject: dtails.intendedProject, }, checkOptions: !!dtails.intendedProject ? dtails.intendedProject.split(",") : [] }) }} >修改 } {dtails.intendedProject || "无"} 面谈思路及目的 { dtails.myUser == 1 && { e.stopPropagation() this.setState({ upType: 4, isOpened: true, info: { uid: this.$instance.router.params.id, id: dtails.id, interviewIdeas: dtails.interviewIdeas, } }) }} >修改 } {dtails.interviewIdeas || "无"} 我方主要面谈人及分工 { dtails.myUser == 1 && { e.stopPropagation() this.setState({ upType: 6, isOpened: true, info: { uid: this.$instance.router.params.id, id: dtails.id, interviewDistribution: dtails.interviewDistribution, } }) }} >修改 } {dtails.interviewDistribution || "无"} : 面谈企业情况 知识产权情况 (专利信息、标准、专利、软著) { dtails.myUser == 1 && { e.stopPropagation() this.setState({ upType: 1, isOpened: true, info: { uid: this.$instance.router.params.id, id: dtails.id, inventionPatentCount: dtails.inventionPatentCount || 0, utilityModelCount: dtails.utilityModelCount || 0, appearancePatentCount: dtails.appearancePatentCount || 0, softwareWorksCount: dtails.softwareWorksCount || 0, otherCount: dtails.otherCount || 0, } }) }} >修改 } 专利 {dtails.patentCount || 0}    其中发明专利 {dtails.inventionPatentCount || 0}    实用新型 {dtails.utilityModelCount || 0}    外观设计 {dtails.appearancePatentCount || 0}    软著 {dtails.softwareWorksCount || 0}    标准 {'有'}    其他类型 {dtails.otherCount || 0}    财务数据 (包括营收、税收、资产、研发费用等) { dtails.myUser == 1 && { e.stopPropagation() this.setState({ upType: 2, isOpened: true, info: { uid: this.$instance.router.params.id, id: dtails.id, financialData: dtails.financialData, } }) }} >修改 } {dtails.financialData || "无"} 前期沟通 (客户的难处、需求) { dtails.myUser == 1 && { e.stopPropagation() this.setState({ upType: 3, isOpened: true, info: { uid: this.$instance.router.params.id, id: dtails.id, earlyCommunication: dtails.earlyCommunication, } }) }} >修改 } {dtails.earlyCommunication || "无"} 面谈思路及目的 { dtails.myUser == 1 && { e.stopPropagation() this.setState({ upType: 4, isOpened: true, info: { uid: this.$instance.router.params.id, id: dtails.id, interviewIdeas: dtails.interviewIdeas, } }) }} >修改 } {dtails.interviewIdeas || "无"} } */} )} { this.setState({ isOpened: false, checkProject: [], checkOptions: [] }) }} > 信息修改 { upType == 0 && 企业行业 { this.setState({ sector: industry[e.detail.value], info: Object.assign(info, { industry: industry[e.detail.value].id, }) }) }}> {!this.state.sector.title ? "请选择" : this.state.sector.title} 企业主营产品/服务 { this.setState({ info: Object.assign(info, { businessScope: e.detail.value, }) }) }} /> } { upType == 1 && { this.setState({ info: Object.assign(info, { inventionPatentCount: e, }) }) }} cursor={-1} /> { this.setState({ info: Object.assign(info, { utilityModelCount: e, }) }) }} cursor={-1} /> { this.setState({ info: Object.assign(info, { appearancePatentCount: e, }) }) }} cursor={-1} /> { this.setState({ info: Object.assign(info, { softwareWorksCount: e, }) }) }} cursor={-1} /> 标准 { dtails.standard = Number(e.target.value); this.setState({ dtails }); }}> { this.setState({ info: Object.assign(dtails, { otherCount: e, }) }) }} cursor={-1} /> } { upType == 2 && 财务数据 { this.setState({ info: Object.assign(info, { financialData: e, }), }) }} maxLength={200} placeholder='请填写财务数据~' /> } { upType == 3 && 前期沟通 { this.setState({ info: Object.assign(info, { earlyCommunication: e, }), }) }} maxLength={200} placeholder='请填写前期沟通~' /> } { upType == 4 && 面谈思路及目的 { this.setState({ info: Object.assign(info, { interviewIdeas: e, }), }) }} maxLength={200} placeholder='请填写面谈思路及目的~' /> } { upType == 5 && { this.getBusinessProjectByName(this.state.value); }} onClear={() => { this.setState({ value: "", }, () => { this.getBusinessProjectByName(this.state.value) }); }} /> {/* { this.state.checkOptions.length > 0 && 已选择: { this.state.checkOptions.map((v, i) => { let list = this.state.checkOptions for (var j = 0; j < list.length; j++) { if (list[j] == v) { list.splice(j, 1) this.setState({ checkOptions: list, info: Object.assign(info, { intendedProject: list.toString(), }), }) } } }} >{v}  ) } } */} {/* { this.setState({ checkOptions: e, info: Object.assign(info, { intendedProject: e.toString(), }), }) }} /> */} {/* 高新项目 */} {this.state.checkProject.length && this.state.checkProject[0].cSort == 9 ? { const { info } = this.state; info.examineStatus = e.target.value; this.setState({ info }); }}> {this.state.info.examineStatus == 2 && 复审年份: this.handleOpenMultiplePicker('examineStatusOther')}>{info.examineStatusOther || '请选择'} } : null} {/* 会员项目 */} {this.state.checkProject.length && this.state.checkProject[0].cSort == 6 ? { const { info } = this.state; info.buyStatus = e.target.value; this.setState({ info }); }}> {this.state.info.buyStatus == 2 && 复购/复审年份: this.handleOpenMultiplePicker('buyStatusOther')}>{info.buyStatusOther || '请选择'} } : null} {this.state.isOpened && { let currProject = this.state.allProjectList.find(item => item.id == e.target.value); this.setState({ checkOptions: [e.target.value], checkProject: [currProject] }); }}> {this.state.options.map((item, i) => { return ( ) })} } } { upType == 6 && 我方主要面谈人及分工 { this.setState({ info: Object.assign(info, { interviewDistribution: e, }), }) }} maxLength={200} placeholder='请填写我方主要面谈人及分工~' /> } { upType == 7 && 渠道类别: { this.setState({ channe: channelTypeList[e.detail.value], info: Object.assign(info, { channelType: channelTypeList[e.detail.value].id, }) }) }}> {!this.state.channe.title ? "请选择" : this.state.channe.title} 覆盖企业数: { this.setState({ info: Object.assign(info, { enterpriseCount: e.detail.value, }) }) }} /> 渠道考核指标 { this.setState({ info: Object.assign(info, { channelIndicators: e, }), }) }} maxLength={200} placeholder='请填写渠道考核指标~' /> } { this.setState({ isAdd: false }) }} > 联系人 { userList.map((item) => {item.name || " "} {item.position || " "} {item.department || " "} {item.mobile || " "} { item.major != 1 && this.updateMainContact(item.id) }} > {item.major == 1 ? "已选" : "选择"} ) } { this.setState({ obj: Object.assign(obj, { name: e, }) }) }} cursor={-1} /> { this.setState({ obj: Object.assign(obj, { position: e, }) }) }} cursor={-1} /> { console.log(e) this.setState({ obj: Object.assign(obj, { department: e, }) }) }} cursor={-1} /> { this.setState({ obj: Object.assign(obj, { mobile: e, }) }) }} cursor={-1} /> 新增对外投资控股的企业 this.setState({ addItemInputVal: value })} cursor={-1} /> {/* 多选框 */} { this.setState({ multiplePickerShow: false, multiplePickerCheckedList: [] }) }} onConfirm={this.handleMultipleConfirm} > {/* 沟通情况历史记录 */} { this.setState({ interactShow: false }) }} /> {/* 省市区选择器 */} { this.setState({ checkCompShow: false, checkCompList: [] }) }} onConfirm={this.handleCheckCompConfirm.bind(this)} /> ); } } export default CustomerProfile;