import React,{ Component } from 'react'; import {Select} from "antd"; import { provinceList} from '@/NewDicProvinceList'; import './index.less'; import TabelContent from '../../../../common/tabelContent' import DetailedList from './detailedList'; import moment from "moment"; class InterviewStatistics extends Component{ constructor(props) { super(props); this.state={ columns: [ { title: "序号", dataIndex: "key", key: "key", }, { title: "省份", dataIndex: "name", key: "name", }, { title: "老客户面谈数", dataIndex: "useInterview", key: "useInterview", className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 1; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "老客户签单数/金额", dataIndex: "useQuantity", key: "useQuantity", render:(text, record)=>( text + '/' + record.useTotal ), className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 1; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "老客户面谈率", dataIndex: "useRatio", key: "useRatio", render:(text)=>( parseFloat((parseFloat(text) * 100).toFixed(2)) + '%' ), className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 1; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "新客户面谈数", dataIndex: "newInterview", key: "newInterview", className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 2; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "新客户签单数/金额", dataIndex: "newQuantity", key: "newQuantity", render:(text, record)=>( text + '/' + record.newTotal ), className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 2; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "新客户面谈率", dataIndex: "newRatio", key: "newRatio", render:(text)=>( parseFloat((parseFloat(text) * 100).toFixed(2)) + '%' ), className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 2; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "总面数", dataIndex: "totalInterview", key: "totalInterview", className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 0; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "总签单数/金额", dataIndex: "totalQuantity", key: "totalQuantity", render:(text, record)=>( text + '/' + record.total ), className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 0; this.setState({ visible: true, recordInfor: record, }) }, }, { title: "总面谈率", dataIndex: "totalRatio", key: "totalRatio", render:(text)=>( parseFloat((parseFloat(text) * 100).toFixed(2)) + '%' ), className: 'projectTable', onCellClick: (record, event) => { event.stopPropagation(); record.type = 0; this.setState({ visible: true, recordInfor: record, }) }, }, ], searchConfig:{} } } searchList(){ let arr = [ { type:'departmentSelect', dataKey:'depId', placeholder:'请选择部门' }, { type:'select', dataKey:'province', placeholder:'请选择省份', selectOptionList:()=>{ let Province = []; provinceList.map(function(item) { let id = String(item.id) Province.push( <Select.Option value={id} key={item.name}>{item.name}</Select.Option> ) }); return Province }, }, //0 总数量 1总金额 2总面谈 { type:'select', dataKey:'sort', placeholder:'请选择排序', selectList:[ { value:'0', label:'按总数量排序' }, { value:'1', label:'按总金额排序' }, { value:'2', label:'按总面谈排序' }, ] }, { type:'times', title:'公出时间', dataKey:'date', format: 'YYYY/MM', }, ] return arr; } render() { return ( <div className="user-content interviewStatistics"> <div className="content-title"> <span> 公出面谈表<span style={{fontSize:'10px',color:'#0f2be5',marginLeft:'10px'}}>注:通过公出打卡,同一家公司,多次面谈数只计算1次</span> </span> </div> <TabelContent searchList={this.searchList()} columns={this.state.columns} searchConfig={{ date:moment().subtract(1, 'months').format("YYYY-MM") }} searchOperation={(value)=>{ for(let i of Object.keys(value)){ if(i === 'sort' || i === 'pageNo' || i === 'pageSize'){ delete value[i] } } this.setState({searchConfig:value})} } tabelApi={'/api/admin/followStatisticsList'} exportApi={'/api/admin/followStatisticsListExport'} onRowClick={()=>{}} exportExecProcessing={(data)=>{ if(data.province){ let arr = provinceList.filter(v=>String(v.id) === String(data.province)) data.provinceName = arr[0].name } return data; }} dataProcessing={(data)=>{ let theArr = []; for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; thisdata.key=i + 1; theArr.push(thisdata); } return theArr; }} /> {this.state.visible ? <DetailedList searchConfig={JSON.parse(JSON.stringify(this.state.searchConfig))} visible={this.state.visible} recordInfor={this.state.recordInfor} onCancel={()=>{ this.setState({ visible:false, recordInfor:{} }) }}/> : null} </div> ) } } export default InterviewStatistics;