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,
  AtIcon,
  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/icon.scss";
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 } 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";

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: []
    };
    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();
  }

  componentDidUpdate(prevProps) {
      const { interviewIdx, customerList } = this.props;
    if (interviewIdx != prevProps.interviewIdx && interviewIdx >= 0 && interviewIdx < customerList.length) {
        this.queryByUidAll();
        this.getProjectList();
    }
  } 

  handlePrevClick() {
      this.props.onPrevClick();
  }

  handleNextClick() {
    this.onSaveAllData((resData) => {
        this.props.onNextClick(resData);
    })
  }

  toggleAddressPicker(e) {
      if (!e.province) {
        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 });
  }

  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() {
    const id = this.props.customerList[this.props.interviewIdx].id;
    queryByUidAll(
        false,
        { id }
    )
      .then((v) => {
        if (v.error.length === 0) {
          this.setState({
            dtails: {
                ...v.data,
                companyCount: v.data.companyCount || 0,
                socialSecurityCount: v.data.socialSecurityCount || 0,
                externalInvestCount: v.data.externalInvestCount || 0,
                financialRevenue: v.data.financialRevenue || 0,
                financialTax: v.data.financialTax || 0,
                financialProperty: v.data.financialProperty || 0,
                financialRd: v.data.financialRd || 0,
                earlyCommunication: '',
                customerDemand: '',
                interviewIdeas: '',
                interviewPurpose: '',
                interviewRecommend: '',
                interviewFeedback: '',
                followUpPlan: ''
            }
          })
        } 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.interviewIdeas || (params.interviewIdeas && params.interviewIdeas.length < 20)) {
            message = '请输入面谈思路，并且在20字以上';
            flag = false;
        } else if (!params.interviewPurpose || (params.interviewPurpose && params.interviewPurpose.length < 20)) {
            message = '请输入面谈达成的目的，并且在20字以上';
            flag = false;
        }  else {
            if (this.state.dtails.interviewList.length) {
                if (!params.interviewFeedback || (params.interviewFeedback && params.interviewFeedback.length < 20)) {
                    message = '请输入面谈后的反馈，并且在20字以上';
                    flag = false;
                } else if (!params.followUpPlan || (params.followUpPlan && params.followUpPlan.length < 20)) {
                    message = '请输入后续跟进计划，并且在20字以上';
                    flag = false;
                }
            }
        }
    } 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 = '请输入社保人数';
            flag = false;
        } else if (params.externalInvestCount === '' || params.externalInvestCount === undefined || params.externalInvestCount === null) {
            message = '请输入对外投资控股的企业数';
            flag = false;
        } else if (params.financialRevenue === '' || params.financialRevenue === undefined || params.financialRevenue === null) {
            message = '请输入营收数据';
            flag = false;
        } else if (params.financialTax === '' || params.financialTax === undefined || params.financialTax === null) {
            message = '请输入税收数据';
            flag = false;
        } else if (params.financialProperty === '' || params.financialProperty === undefined || params.financialProperty === null) {
            message = '请输入资产数据';
            flag = false;
        } else if (params.financialRd === '' || params.financialRd === undefined || params.financialRd === null) {
            message = '请输入研发费用';
            flag = false;
        } else if (!params.externalInvestIndustry) {
            message = '请选择对外投资控股的行业';
            flag = false;
        } else if (!params.externalInvestName) {
            message = '请选择对外投资控股的企业';
            flag = false;
        } else if (!params.earlyCommunication || (params.earlyCommunication && params.earlyCommunication.length < 20)) {
            message = '请输入客户的难处，并且在20字以上';
            flag = false;
        } else if (!params.customerDemand || (params.customerDemand && params.customerDemand.length < 20)) {
            message = '请输入客户的需求，并且在20字以上';
            flag = false;
        } else if (!params.interviewIdeas || (params.interviewIdeas && params.interviewIdeas.length < 20)) {
            message = '请输入面谈思路，并且在20字以上';
            flag = false;
        } else if (!params.interviewPurpose || (params.interviewPurpose && params.interviewPurpose.length < 20)) {
            message = '请输入面谈达成的目的，并且在20字以上';
            flag = false;
        } else if (!params.interviewRecommend || (params.interviewRecommend && params.interviewRecommend.length < 20)) {
            message = '请输入经理/上级面谈建议，并且在20字以上';
            flag = false;
        } else {
            if (this.state.dtails.interviewList.length) {
                if (!params.interviewFeedback || (params.interviewFeedback && params.interviewFeedback.length < 20)) {
                    message = '请输入面谈后的反馈，并且在20字以上';
                    flag = false;
                } else if (!params.followUpPlan || (params.followUpPlan && params.followUpPlan.length < 20)) {
                    message = '请输入后续跟进计划，并且在20字以上';
                    flag = false;
                }
            }
        }
    }
    return { flag, message };
  }

  onSaveAllData(callback) {
    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: 1, // 1、更新档案和面谈，0、只更新档案
    };

    if (dtails.newChannel == 1) {
        // 渠道客户
        params = {
            ...params,
            channelType: dtails.channelType,
            enterpriseCount: dtails.enterpriseCount,
            channelIndicators: dtails.channelIndicators,
            interviewIdeas: dtails.interviewIdeas,
            interviewPurpose: dtails.interviewPurpose,
            interviewFeedback: dtails.interviewFeedback,
            followUpPlan: dtails.followUpPlan,
        };
    } else {
        let externalInvestIdArr = [];
        if (!!dtails.externalInvestName) {
            externalInvestIdArr = dtails.externalInvestName.split('、').map(() => {
                return '0';
            })
        }
        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,
            socialSecurityCount: dtails.socialSecurityCount,
            externalInvestCount: dtails.externalInvestCount,
            externalInvestIndustry: dtails.externalInvestIndustry,
            externalInvestIndustryName: dtails.externalInvestIndustryName,
            externalInvestId: externalInvestIdArr.join(','),
            externalInvestName: dtails.externalInvestName,
            financialRevenue: dtails.financialRevenue,
            financialTax: dtails.financialTax,
            financialProperty: dtails.financialProperty,
            financialRd: dtails.financialRd,
            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: "修改成功",
          });
          
          callback && callback(v.data);
        } else {
          Taro.showToast({
            title: v.error[0].message,
            icon: "none",
          });
        }
      })
  }

  // 修改客户档案
  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 {
        this.setState({ isOpened: false, dtails: { ...this.state.dtails, ...this.state.info } })
    }
  }
  postAddProject() {
    const { checkProject, dtails, info } = this.state;
    const params = { uid: dtails.id };
    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"
            });
        }
    })
  }

  /**
   * 获取项目列表
   */
  getProjectList() {
    let uid = this.props.customerList[this.props.interviewIdx].id;
    const params = { uid, 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 (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()
      } 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 = this.state.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 (
      <View className="customerProfile">
        <MessageNoticebar />
        <View
          className="titleContent"
        >
          {Object.keys(dtails).length === 0 ? (
            <Skeleton
              title
              row={3}
              animateName="elastic"
              avatarShape="square"
              loading
            />
          ) : (
            <View className="content">
              <View className="name">
                <Text style={{ width: "80%" }}>
                  <Text className="bod">{dtails.nickname}&nbsp;&nbsp;</Text>
                  <Text style={{ fontSize: "12px", color: ["red", "green"][dtails.signBills] }}>{["未签单", "已签单"][dtails.signBills]}</Text>
                </Text>
                {dtails.myUser == 1 && <Button className="share" plain type='primary' open-type="share">分享</Button>}
                {/* <View className="share">分享</View> */}
              </View>
              <View className="button">
                <View className="but"
                  onClick={e => {
                    e.stopPropagation()
                    this.setState({
                      isSuperior: true
                    })
                  }}
                >上级指导</View>
                {
                  this.state.isSuperior &&
                  <Superior
                    id={dtails.uid}
                    userNames={dtails.nickname}
                    isOpinion={this.state.isSuperior}
                    isFill={dtails.myUser == 0}
                    onClose={() => {
                      this.setState({
                        isSuperior: false
                      })
                    }}
                  />
                }
                <View className="but"
                  onClick={e => {
                    e.stopPropagation()
                    Taro.navigateTo({
                      url: "/pages/situation/index?id=" + this.$instance.router.params.id + "&notRequired=" + this.$instance.router.params.notRequired,
                    });
                  }}
                >公出记录</View>
              </View>
              <View className="row">
                <View className="code">{dtails.orgCode}</View>
                <View className="time">{dtails.createTime}</View>
              </View>

              {
                dtails.newChannel == 1
                  ?
                  <View className="first">
                    <View className="title">渠道面谈思路表</View>
                    <View className="val" style={{ display: 'flex' }}>
                        企业所在地省市区：
                        <View className="link" onClick={() => {this.setState({ addressPickerShow: true })}}>
                            { dtails.locationProvince ? `${dtails.locationProvinceName}-${dtails.locationCityName}-${dtails.locationAreaName}` : '请选择' }
                        </View>
                        
                    </View>
                    <View className="val" style={{ display: 'flex', alignItems: 'center' }}>
                        渠道类别：
                        <Picker
                            value={dtails.channelType}
                            range={channelTypeList}
                            rangeKey='title'
                            mode='selector'
                            onChange={(e) => {
                                const { dtails } = this.state; 
                                dtails.channelType = e.detail.value;
                                console.log(dtails.channelType)
                                this.setState({ dtails })
                            }}>
                            <View className="link">
                            {!getChannel(dtails.channelType) ? "请选择" : getChannel(dtails.channelType)}
                            </View>
                        </Picker>
                    </View>
                    <View className="val" style={{ display: 'flex', alignItems: 'center' }}>
                        渠道企业数：
                        <View style={{width: '120rpx'}}>
                            <AtInputNumber
                            min={0}
                            max={99999}
                            value={dtails.enterpriseCount}
                            name='companyCount'
                            type='number'
                            placeholder='请输入数量'
                            size='mini'
                            onChange={value => {
                                dtails.enterpriseCount = value;
                                this.setState({ dtails })
                            }}
                            />
                        </View>
                    </View>
                    <View className="val" style={{display: 'flex'}}>
                        渠道考核指标：
                        <AtTextarea
                            value={dtails.channelIndicators || ''}
                            onChange={e => {
                                this.setState({
                                    dtails: Object.assign(dtails, {
                                        channelIndicators: e,
                                    }),
                                })
                            }}
                            maxLength={200}
                            placeholder='请填写渠道考核指标~'
                        />
                    </View>
                    <View className="tit" style={{ marginTop: '60rpx' }}>
                      <Text>
                        联系人
                        <Text className="txt">（面谈人）</Text>
                      </Text>
                      {
                        dtails.myUser == 1 &&
                        <View className="up"
                          onClick={e => {
                            e.stopPropagation()
                            this.getUserList();
                            this.setState({
                              isAdd: true,
                              obj: {
                                uid: this.$instance.router.params.id,
                                name: "",
                                position: "",
                                department: "",
                                mobile: "",
                              }
                            })
                          }}
                        >新增</View>
                      }
                    </View>
                    {
                      !!dtails.contactList && dtails.contactList.map((v, k) =>
                        <View className="val" key={k}>{v.name}&nbsp;&nbsp;{v.position}&nbsp;&nbsp;{v.department}&nbsp;&nbsp;{v.mobile}</View>
                      )
                    }
                    <View className="tit" style={{marginTop: '60rpx'}}>
                      本次面谈项目
                      {
                        dtails.myUser == 1 &&
                        <View className="up"
                          onClick={e => {
                            e.stopPropagation()
                            this.getBusinessProjectByName("")
                            this.setState({
                              upType: 5,
                              isOpened: true,
                              info: {
                                uid: this.$instance.router.params.id,
                                intendedProject: dtails.intendedProject,
                              },
                              checkOptions: []
                            })
                          }}
                        >新增</View>
                      }
                    </View>
                    <View className="val">{
                        this.state.projectList.map(item => {
                            return <View style={{ display: 'flex', alignItems: 'center' }}>
                                <Text style={{ fontSize: '30rpx' }} style={{marginRight: '10rpx'}}>
                                    { this.renderProjectItemName(item) }
                                </Text>
                                <AtIcon value="close" size='15' color="#f00" onClick={() => {this.handleDelProject(item)}} />
                            </View>
                        })
                    }</View>

                    <View className="tit">
                        <Text>
                        面谈思路
                        <Text className="txt">（20字以上）</Text>
                        </Text>
                        { dtails.interviewList.length ? (
                            <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewIdeas')}></AtIcon>
                        ) : null }
                        
                    </View>
                    <View className="val">
                        <AtTextarea
                        value={dtails.interviewIdeas}
                        maxLength={200}
                        placeholder='请编写本次面谈客户思路~'
                        height={70}
                        onChange={value => {
                            dtails.interviewIdeas = value;
                            this.setState({ dtails });
                        }}
                        />
                    </View>
                    <View className="tit">
                        <Text>
                        面谈达成的目的
                        <Text className="txt">（20字以上）</Text>
                        </Text>
                        { dtails.interviewList.length ? (
                            <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewPurpose')}></AtIcon>
                        ) : null }
                    </View>
                    <View className="val">
                        <AtTextarea
                        value={dtails.interviewPurpose}
                        maxLength={200}
                        placeholder='请编写本次面谈达成的目的~'
                        height={70}
                        onChange={value => {
                            dtails.interviewPurpose = value;
                            this.setState({ dtails });
                        }}
                        />
                    </View>
                    <View className="tit">
                        <Text>
                        经理/上级面谈建议
                        <Text className="txt">（由经理/上级口述，本人整理，20字以上）</Text>
                        </Text>
                        { dtails.interviewList.length ? (
                            <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewRecommend')}></AtIcon>
                        ) : null }
                    </View>
                    <View className="val">
                        <AtTextarea
                        value={dtails.interviewRecommend}
                        maxLength={200}
                        placeholder='请编写本次面谈建议~'
                        height={70}
                        onChange={value => {
                            dtails.interviewRecommend = value;
                            this.setState({ dtails });
                        }}
                        />
                    </View>

                    { dtails.interviewList && dtails.interviewList.length ? (
                        <>
                            <View className="tit">
                                <Text>
                                面谈后的反馈
                                <Text className="txt">（20字以上）</Text>
                                </Text>
                                <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewFeedback')}></AtIcon>
                            </View>
                            <View className="val">
                                <AtTextarea
                                value={dtails.interviewFeedback}
                                maxLength={200}
                                placeholder='请编写本次面谈后的反馈~'
                                height={70}
                                onChange={value => {
                                    dtails.interviewFeedback = value;
                                    this.setState({ dtails });
                                }}
                                />
                            </View>

                            <View className="tit">
                                <Text>
                                后续跟进计划
                                <Text className="txt">（20字以上）</Text>
                                </Text>
                                <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('followUpPlan')}></AtIcon>
                            </View>
                            <View className="val">
                                <AtTextarea
                                value={dtails.followUpPlan}
                                maxLength={200}
                                placeholder='请编写后续跟进计划~'
                                height={70}
                                onChange={value => {
                                    dtails.followUpPlan = value;
                                    this.setState({ dtails });
                                }}
                                />
                            </View>
                        </>
                    ) : null }
                  </View>
                  :
                  <View className="first">
                    <View className="title">企业面谈思路表</View>
                    <View className="val" style={{ display: 'flex' }}>
                        企业所在地省市区：
                        {/* <Picker
                            mode='region'
                            value={this.state.region}
                            customItem={this.state.customItem}
                            onChange={this.bindRegionChange.bind(this)}
                        >
                            <View className='picker'>
                            { this.state.region.length ? this.state.region.join('-') : '请选择' }
                            </View>
                        </Picker> */}
                        <View className="link" onClick={() => {this.setState({ addressPickerShow: true })}}>
                            { dtails.locationProvince ? `${dtails.locationProvinceName}-${dtails.locationCityName}-${dtails.locationAreaName}` : '请选择' }
                        </View>
                    </View>
                    {/* <View className="tit">
                      企业面谈思路表
                      {
                        dtails.myUser == 1 &&
                        <View className="up"
                          onClick={e => {
                            e.stopPropagation()
                            this.setState({
                              upType: 0,
                              isOpened: true,
                              info: {
                                uid: this.$instance.router.params.id,
                                industry: dtails.industry,
                                businessScope: dtails.businessScope,
                              },
                              sector: {
                                id: dtails.industry,
                                title: dtails.industryName
                              }
                            })
                          }}
                        >修改</View>
                      }
                    </View> */}
                    <View className="val" style={{display: 'flex'}}>
                        企业所属行业：
                        <View className="link" onClick={() => this.handleOpenMultiplePicker('industry')}>
                            { this.state.dtails.industryName || '请选择' }
                        </View>
                    </View>
                    <View className="val" style={{display: 'flex', alignItems: 'center'}}>
                        主营产品：
                        <View style={{flex: 1}}>
                            <AtInput
                            value={dtails.businessScope}
                            name='businessScope'
                            placeholder='请用,符号隔开关键字'
                            size='mini'
                            onChange={value => {
                                dtails.businessScope = value;
                                this.setState({ dtails })
                            }}
                            cursor={-1}
                            />
                        </View>
                        
                    </View>
                    <View className="val" style={{ display: 'flex', alignItems: 'center' }}>
                        母/子公司数：
                        <View style={{width: '120rpx'}}>
                            <AtInputNumber
                            min={0}
                            max={99999}
                            value={dtails.companyCount}
                            name='companyCount'
                            type='number'
                            placeholder='请输入数量'
                            size='mini'
                            onChange={value => {
                                dtails.companyCount = value;
                                this.setState({ dtails })
                            }}
                            />
                        </View>
                    </View>
                    <View className="val" style={{ display: 'flex', alignItems: 'center' }}>
                        社保人数：
                        <View style={{width: '120rpx'}}>
                            <AtInputNumber
                            min={0}
                            max={99999}
                            value={dtails.socialSecurityCount}
                            name='socialSecurityCount'
                            type='number'
                            placeholder='请输入数量'
                            size='mini'
                            onChange={value => {
                                dtails.socialSecurityCount = value;
                                this.setState({ dtails })
                            }}
                            />
                        </View>
                    </View>
                    <View className="val" style={{ display: 'flex', alignItems: 'center' }}>
                        对外投资控股的企业数：
                        <View style={{width: '120rpx'}}>
                            <AtInputNumber
                            min={0}
                            max={99999}
                            value={dtails.externalInvestCount}
                            name='externalInvestCount'
                            type='number'
                            placeholder='请输入数量'
                            size='mini'
                            onChange={value => {
                                dtails.externalInvestCount = value;
                                this.setState({ dtails })
                            }}
                            />
                        </View>
                    </View>
                    <View className="val" style={{display: 'flex'}}>
                        对外投资控股的行业：
                        <View className="link" onClick={() => this.handleOpenMultiplePicker('externalInvestIndustry')}>
                            { this.state.dtails.externalInvestIndustryName || '请选择' }
                        </View>
                    </View>

                    <View className="val" style={{display: 'flex'}}>
                        对外投资控股的企业名称：
                        <View className="link" onClick={() => this.addItemDialog('externalInvestName')}>
                            { this.state.dtails.externalInvestName || '点击新增' }
                        </View>
                    </View>

                    <View className="tit">
                      <Text>
                        主要面谈联系信息
                        {/* <Text className="txt">（面谈人）</Text> */}
                      </Text>
                      {
                        dtails.myUser == 1 &&
                        <View className="up"
                          onClick={e => {
                            e.stopPropagation()
                            this.getUserList();
                            this.setState({
                              isAdd: true,
                              obj: {
                                uid: this.$instance.router.params.id,
                                name: "",
                                position: "",
                                department: "",
                                mobile: "",
                              }
                            })
                          }}
                        >新增</View>
                      }
                    </View>
                    {
                      !!dtails.contactList && dtails.contactList.map((v, k) =>
                        <View className="val" key={k}>
                          {v.name}&nbsp;&nbsp;{v.position}&nbsp;&nbsp;{v.department}&nbsp;&nbsp;{v.mobile}
                          {this.state.isMask && <View className="mask"></View>}
                        </View>
                      )
                    }

                    <View className="tit">
                      本次面谈项目
                      {
                        dtails.myUser == 1 &&
                        <View className="up"
                          onClick={e => {
                            e.stopPropagation()
                            this.getBusinessProjectByName("")
                            this.setState({
                              upType: 5,
                              isOpened: true,
                              info: {
                                uid: this.$instance.router.params.id,
                                intendedProject: dtails.intendedProject,
                              },
                              checkOptions: []
                            })
                          }}
                        >新增</View>
                      }
                    </View>
                    <View className="val">{
                        this.state.projectList.map(item => {
                            return <View style={{ display: 'flex', alignItems: 'center' }}>
                                <Text style={{ fontSize: '30rpx' }} style={{marginRight: '10rpx'}}>
                                    { this.renderProjectItemName(item) }
                                </Text>
                                <AtIcon value="close" size='15' color="#f00" onClick={() => {this.handleDelProject(item)}} />
                            </View>
                        })
                    }</View>

                    <View style={{marginTop: '60rpx'}}>
                        <View className="title">面谈已知企业情况</View>
                        <View className="tit">
                            <Text>
                                1.知识产权情况
                                <Text className="txt">（专利信息、标准、专利、软著）</Text>
                            </Text>
                            {
                            dtails.myUser == 1 &&
                            <View className="up"
                            onClick={e => {
                                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,
                                }
                                })
                            }}
                            >修改</View>
                        }
                        </View>
                        <View className="val">
                            专利&nbsp;<Text className="num">{dtails.patentCount || 0}</Text>&nbsp;&nbsp;&nbsp;
                            其中发明专利&nbsp;<Text className="num">{dtails.inventionPatentCount || 0}</Text>&nbsp;&nbsp;&nbsp;
                            实用新型&nbsp;<Text className="num">{dtails.utilityModelCount || 0}</Text>&nbsp;&nbsp;&nbsp;
                            外观设计&nbsp;<Text className="num">{dtails.appearancePatentCount || 0}</Text>&nbsp;&nbsp;&nbsp;
                            软著&nbsp;<Text className="num">{dtails.softwareWorksCount || 0}</Text>&nbsp;&nbsp;&nbsp;
                            标准&nbsp;<Text className="num">{dtails.standard == 1 ? '有' : '无'}</Text>&nbsp;&nbsp;&nbsp;
                            其他类型&nbsp;<Text className="num">{dtails.otherCount || 0}</Text>&nbsp;&nbsp;&nbsp;
                        </View>

                        <View className="tit">2.财务数据</View>
                        <View className="val" style={{display: 'flex', alignItems: 'center'}}>
                            营收（万元）：
                            <View style={{width: '120rpx'}}>
                                <AtInputNumber
                                min={0}
                                max={99999}
                                value={dtails.financialRevenue}
                                name='financialRevenue'
                                type='number'
                                placeholder='请输入数量'
                                size='mini'
                                onChange={value => {
                                    dtails.financialRevenue = value;
                                    this.setState({ dtails })
                                }}
                                />
                            </View>
                        </View>
                        <View className="val" style={{display: 'flex', alignItems: 'center'}}>
                            税收（万元）：
                            <View style={{width: '120rpx'}}>
                                <AtInputNumber
                                min={0}
                                max={99999}
                                value={dtails.financialTax}
                                name='financialTax'
                                type='number'
                                placeholder='请输入数量'
                                size='mini'
                                onChange={value => {
                                    dtails.financialTax = value;
                                    this.setState({ dtails })
                                }}
                                />
                            </View>
                        </View>
                        <View className="val" style={{display: 'flex', alignItems: 'center'}}>
                            资产（万元）：
                            <View style={{width: '120rpx'}}>
                                <AtInputNumber
                                min={0}
                                max={99999}
                                value={dtails.financialProperty}
                                name='financialProperty'
                                type='number'
                                placeholder='请输入数量'
                                size='mini'
                                onChange={value => {
                                    dtails.financialProperty = value;
                                    this.setState({ dtails })
                                }}
                                />
                            </View>
                            
                        </View>
                        <View className="val" style={{display: 'flex', alignItems: 'center'}}>
                            研发费用（万元）：
                            <View style={{width: '120rpx'}}>
                                <AtInputNumber
                                min={0}
                                max={99999}
                                value={dtails.financialRd}
                                name='financialRd'
                                type='number'
                                placeholder='请输入数量'
                                size='mini'
                                onChange={value => {
                                    dtails.financialRd = value;
                                    this.setState({ dtails })
                                }}
                                />
                            </View>
                        </View>

                        <View className="tit">3.前期沟通情况</View>
                        <View className="tit">
                            <Text>
                            客户的难处
                            <Text className="txt">（20字以上）</Text>
                            </Text>
                            { dtails.interviewList.length ? (
                                <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('earlyCommunication')}></AtIcon>
                            ) : null }
                            
                        </View>
                        <View className="val">
                            <AtTextarea
                            value={dtails.earlyCommunication}
                            maxLength={200}
                            placeholder='请编写本次面谈客户难处~'
                            height={70}
                            onChange={value => {
                                dtails.earlyCommunication = value;
                                this.setState({ dtails });
                            }}
                            />
                        </View>
                        <View className="tit">
                            <Text>
                            客户的需求
                            <Text className="txt">（20字以上）</Text>
                            </Text>
                            { dtails.interviewList.length ? (
                                <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('customerDemand')}></AtIcon>
                            ) : null }
                            
                        </View>
                        <View className="val">
                            <AtTextarea
                            value={dtails.customerDemand}
                            maxLength={200}
                            placeholder='请编写本次面谈客户需求~'
                            height={70}
                            onChange={value => {
                                dtails.customerDemand = value;
                                this.setState({ dtails });
                            }}
                            />
                        </View>
                        <View className="tit">
                            <Text>
                            面谈思路
                            <Text className="txt">（20字以上）</Text>
                            </Text>
                            { dtails.interviewList.length ? (
                                <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewIdeas')}></AtIcon>
                            ) : null }
                            
                        </View>
                        <View className="val">
                            <AtTextarea
                            value={dtails.interviewIdeas}
                            maxLength={200}
                            placeholder='请编写本次面谈客户思路~'
                            height={70}
                            onChange={value => {
                                dtails.interviewIdeas = value;
                                this.setState({ dtails });
                            }}
                            />
                        </View>
                        <View className="tit">
                            <Text>
                            面谈达成的目的
                            <Text className="txt">（20字以上）</Text>
                            </Text>
                            { dtails.interviewList.length ? (
                                <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewPurpose')}></AtIcon>
                            ) : null }
                        </View>
                        <View className="val">
                            <AtTextarea
                            value={dtails.interviewPurpose}
                            maxLength={200}
                            placeholder='请编写本次面谈达成的目的~'
                            height={70}
                            onChange={value => {
                                dtails.interviewPurpose = value;
                                this.setState({ dtails });
                            }}
                            />
                        </View>
                        <View className="tit">
                            <Text>
                            经理/上级面谈建议
                            <Text className="txt">（由经理/上级口述，本人整理，20字以上）</Text>
                            </Text>
                            { dtails.interviewList.length ? (
                                <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewRecommend')}></AtIcon>
                            ) : null }
                        </View>
                        <View className="val">
                            <AtTextarea
                            value={dtails.interviewRecommend}
                            maxLength={200}
                            placeholder='请编写本次面谈建议~'
                            height={70}
                            onChange={value => {
                                dtails.interviewRecommend = value;
                                this.setState({ dtails });
                            }}
                            />
                        </View>

                        { dtails.interviewList && dtails.interviewList.length ? (
                            <>
                                <View className="tit">
                                    <Text>
                                    面谈后的反馈
                                    <Text className="txt">（20字以上）</Text>
                                    </Text>
                                    <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('interviewFeedback')}></AtIcon>
                                </View>
                                <View className="val">
                                    <AtTextarea
                                    value={dtails.interviewFeedback}
                                    maxLength={200}
                                    placeholder='请编写本次面谈后的反馈~'
                                    height={70}
                                    onChange={value => {
                                        dtails.interviewFeedback = value;
                                        this.setState({ dtails });
                                    }}
                                    />
                                </View>

                                <View className="tit">
                                    <Text>
                                    后续跟进计划
                                    <Text className="txt">（20字以上）</Text>
                                    </Text>
                                    <AtIcon value='clock' size='20' color='#1E90FF' onClick={() => this.openInteractHis('followUpPlan')}></AtIcon>
                                </View>
                                <View className="val">
                                    <AtTextarea
                                    value={dtails.followUpPlan}
                                    maxLength={200}
                                    placeholder='请编写后续跟进计划~'
                                    height={70}
                                    onChange={value => {
                                        dtails.followUpPlan = value;
                                        this.setState({ dtails });
                                    }}
                                    />
                                </View>
                            </>
                        ) : null }

                        <View style={{ display: 'flex', marginTop: '24rpx'}}>
                            <AtButton type="secondary" circle onClick={this.handlePrevClick.bind(this)}>上一页</AtButton>
                            <AtButton type="primary" circle onClick={this.handleNextClick.bind(this)}>下一页</AtButton>
                        </View>
                    </View>
                  </View>
              }
            </View>
          )}
        </View>

        <AtModal
          isOpened={this.state.isOpened}
          onClose={() => {
            this.setState({
              isOpened: false,
              checkProject: [],
              checkOptions: []
            })
          }}
        >
          <AtModalHeader>信息修改</AtModalHeader>
          <AtModalContent>
            {
              upType == 1 &&
              <View>
                <AtInput
                  name='inventionPatentCount'
                  title='发明专利'
                  type='number'
                  value={info.inventionPatentCount}
                  onChange={e => {
                    this.setState({
                      info: Object.assign(info, {
                        inventionPatentCount: e,
                      })
                    })
                  }}
                  cursor={-1}
                />
                <AtInput
                  name='utilityModelCount'
                  title='实用新型'
                  type='number'
                  value={info.utilityModelCount}
                  onChange={e => {
                    this.setState({
                      info: Object.assign(info, {
                        utilityModelCount: e,
                      })
                    })
                  }}
                  cursor={-1}
                />
                <AtInput
                  name='appearancePatentCount'
                  title='外观专利'
                  type='number'
                  value={info.appearancePatentCount}
                  onChange={e => {
                    this.setState({
                      info: Object.assign(info, {
                        appearancePatentCount: e,
                      })
                    })
                  }}
                  cursor={-1}
                />
                <AtInput
                  name='softwareWorksCount'
                  title='软著'
                  type='number'
                  value={info.softwareWorksCount}
                  onChange={e => {
                    this.setState({
                      info: Object.assign(info, {
                        softwareWorksCount: e,
                      })
                    })
                  }}
                  cursor={-1}
                />
                <View style={{display: 'flex', margin: '12rpx 0'}}>
                    <Text style={{ fontSize: '32rpx', marginRight: '16rpx', width: '172rpx' }}>标准</Text>
                    <RadioGroup title="标准" onChange={e => {
                        dtails.standard = Number(e.target.value);
                        this.setState({ dtails });
                    }}>
                        <Label className='radio-list__label'>
                        <Radio className='radio-list__radio' value={1} checked={dtails.standard == 1}>有</Radio>
                        </Label>
                        <Label className='radio-list__label'>
                        <Radio className='radio-list__radio' value={0} checked={!dtails.standard}>无</Radio>
                        </Label>
                    </RadioGroup>
                </View>
                <AtInput
                  name='otherCount'
                  title='其他'
                  type='number'
                  value={dtails.otherCount}
                  onChange={e => {
                    this.setState({
                      info: Object.assign(dtails, {
                        otherCount: e,
                      })
                    })
                  }}
                  cursor={-1}
                />
              </View>
            }
            {
              upType == 5 &&
              <View>
                <AtSearchBar
                  placeholder="请输入项目名称"
                  showActionButton
                  value={this.state.value}
                  onChange={this.onSearchChange}
                  onActionClick={() => {
                    this.getBusinessProjectByName(this.state.value);
                  }}
                  onClear={() => {
                    this.setState({
                      value: "",
                    }, () => { this.getBusinessProjectByName(this.state.value) });
                  }}
                  cursor={-1}
                />

                {/* 高新项目 */}
                { this.state.checkProject.length && this.state.checkProject[0].cSort == 9 ? <View style={{backgroundColor: '#eee', padding: '20rpx 24rpx', margin: '24rpx'}}>
                    <RadioGroup onChange={e => {
                        const { info } = this.state;
                        info.examineStatus = e.target.value;
                        this.setState({ info });
                    }}>
                        <Label className='radio-list__label'>
                            <Radio className='radio-list__radio' checked={info.examineStatus == 1} value={1}>初次审核</Radio>
                        </Label>
                        <Label className='radio-list__label'>
                            <Radio className='radio-list__radio' checked={info.examineStatus == 2} value={2}>复审</Radio>
                        </Label>
                    </RadioGroup>
                    { this.state.info.examineStatus == 2 && <View>
                        <Text>复审年份：</Text>
                        <Text style={{textDecoration: 'underline'}} onClick={() => this.handleOpenMultiplePicker('examineStatusOther')}>{ info.examineStatusOther || '请选择' }</Text>
                    </View> }
                </View> : null}

                {/* 会员项目 */}
                { this.state.checkProject.length && this.state.checkProject[0].cSort == 6 ? <View style={{backgroundColor: '#eee', padding: '20rpx 24rpx', margin: '24rpx'}}>
                    <RadioGroup onChange={e => {
                        const { info } = this.state;
                        info.buyStatus = e.target.value;
                        this.setState({ info });
                    }}>
                        <Label className='radio-list__label'>
                            <Radio className='radio-list__radio' checked={info.buyStatus == 1} value={1}>新购</Radio>
                        </Label>
                        <Label className='radio-list__label'>
                            <Radio className='radio-list__radio' checked={info.buyStatus == 2} value={2}>复购/复审</Radio>
                        </Label>
                    </RadioGroup>
                    { this.state.info.buyStatus == 2 && <View>
                        <Text>复购/复审年份：</Text>
                        <Text style={{textDecoration: 'underline'}} onClick={() => this.handleOpenMultiplePicker('buyStatusOther')}>{ info.buyStatusOther || '请选择' }</Text>
                    </View> }
                </View> : null}
                

                { this.state.isOpened && <RadioGroup onChange={e => {
                    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 (
                    <View>
                        <Label className='radio-list__label' for={i} key={i}>
                            <Radio className='radio-list__radio' value={item.value} checked={this.state.checkOptions.indexOf(item.value) > -1}>{item.label}</Radio>
                        </Label>
                    </View>
                  )
                })}
              </RadioGroup>}
              </View>
            }
            
          </AtModalContent>
          <AtModalAction>
            <Button type='secondary' onClick={() => {
                this.setState({
                    isOpened: false,
                    checkOptions: [],
                    checkProject: []
                })
            }}>取消</Button>
            <Button type='primary' onClick={this.update}>确定修改</Button>
          </AtModalAction>
        </AtModal>

        <AtModal
          isOpened={this.state.isAdd}
          onClose={() => {
            this.setState({
              isAdd: false
            })
          }}
        >
          <AtModalHeader>联系人</AtModalHeader>
          <AtModalContent>
            {
              userList.map((item) =>
                <View key={item.id} className="additem">
                  <Text className="txt">{item.name || " "}</Text>
                  <Text className="txt">{item.position || " "}</Text>
                  <Text className="txt">{item.department || " "}</Text>
                  <Text className="mobile">{item.mobile || " "}</Text>
                  <View
                    className={item.major == 1 ? "bts" : "bt"}
                    onClick={() => {
                      item.major != 1 && this.updateMainContact(item.id)
                    }}
                  >
                    {item.major == 1 ? "已选" : "选择"}
                  </View>
                </View>
              )
            }
            <AtInput
              required
              name='name'
              title='姓名'
              type='text'
              placeholder='请填写姓名'
              value={obj.name}
              onChange={e => {
                this.setState({
                  obj: Object.assign(obj, {
                    name: e,
                  })
                })
              }}
              cursor={-1}
            />
            <AtInput
              required
              name='position'
              title='职位'
              type='text'
              placeholder='请填写职位'
              value={obj.position}
              onChange={e => {
                this.setState({
                  obj: Object.assign(obj, {
                    position: e,
                  })
                })
              }}
              cursor={-1}
            />
            <AtInput
              required
              name='department'
              title='部门'
              type='text'
              placeholder='请填写部门'
              value={obj.department}
              onChange={e => {
                this.setState({
                  obj: Object.assign(obj, {
                    department: e,
                  })
                })
              }}
              cursor={-1}
            />
            <AtInput
              required
              name='mobile'
              title='手机'
              type='phone'
              placeholder='请填写手机号'
              value={obj.mobile}
              onChange={e => {
                this.setState({
                  obj: Object.assign(obj, {
                    mobile: e,
                  })
                })
              }}
              cursor={-1}
            />
          </AtModalContent>
          <AtModalAction>
            <Button type='secondary'
              onClick={() => {
                this.setState({
                  isAdd: false,
                }, () => {
                  this.queryByUidAll()
                })
              }}>取消</Button>
            <Button type='primary' onClick={this.add}>保存</Button>
          </AtModalAction>
        </AtModal>

        {/* 新增项目 */}
        <AtModal
            isOpened={this.state.addItemShow}
            onClose={this.handleCloseAddItemDialog}
        >
          <AtModalHeader>新增对外投资控股的企业</AtModalHeader>
          <AtModalContent>
            <AtInput
              required
              name='companyName'
              title='企业名称'
              placeholder='请输入企业名称'
              value={this.state.addItemInputVal}
              onChange={value => this.setState({ addItemInputVal: value })}
              cursor={-1}
            />
          </AtModalContent>
          <AtModalAction>
            <Button type='secondary' onClick={this.handleCloseAddItemDialog}>取消</Button>
            <Button type='primary' onClick={this.handleAddItemSave}>保存</Button>
          </AtModalAction>
        </AtModal>

        {/* 多选框 */}
        <CheckboxPicker
            isOpened={this.state.multiplePickerShow}
            title={this.state.multiplePickerTitle}
            options={this.state.multiplePickerOptions}
            checkedList={this.state.multiplePickerCheckedList}
            onClose={() => {this.setState({multiplePickerShow: false, multiplePickerCheckedList: []})}}
            onConfirm={this.handleMultipleConfirm}
        ></CheckboxPicker>

        {/* 沟通情况历史记录 */}
        <InteractList
            isOpened={this.state.interactShow}
            list={this.state.interactList}
            type={this.state.interactShowType}
            title={this.state.interactTitle}
            onClose={() => {
                this.setState({ interactShow: false })
            }}
        />

        {/* 省市区选择器 */}
        <AddressPicker
            pickerShow={this.state.addressPickerShow}
            onHandleToggleShow={this.toggleAddressPicker.bind(this)}
        />
      </View>
    );
  }
}

export default CustomerProfile;
