|
@@ -1,13 +1,12 @@
|
|
|
import React,{ Component } from 'react';
|
|
|
-import {
|
|
|
- Button,
|
|
|
- Modal, Select, Tag,
|
|
|
- Tooltip,
|
|
|
-} from "antd";
|
|
|
+import {Button, Modal, Tag, Tooltip,} from "antd";
|
|
|
import './index.less';
|
|
|
import TabelContent from "../../../../common/tabelContent";
|
|
|
import {splitUrl,getClockState} from "@/tools";
|
|
|
import ImgList from "../../../../common/imgList";
|
|
|
+import {clockState} from "@/dataDic";
|
|
|
+import {getApprovedState, getLiquidationStatus, getNewOrderStatus, getProcessStatus} from "../../../../tools";
|
|
|
+import moment from 'moment';
|
|
|
|
|
|
class DetailedList extends Component{
|
|
|
constructor(props) {
|
|
@@ -21,18 +20,22 @@ class DetailedList extends Component{
|
|
|
},
|
|
|
{
|
|
|
title: "面谈部门",
|
|
|
- dataIndex: "depName",
|
|
|
- key: "depName",
|
|
|
+ dataIndex: "name",
|
|
|
+ key: "name",
|
|
|
},
|
|
|
{
|
|
|
title: "客户类型",
|
|
|
- dataIndex: "name",
|
|
|
- key: "name",
|
|
|
+ dataIndex: "newUser",
|
|
|
+ key: "newUser",
|
|
|
+ render:(text)=>(
|
|
|
+ text === 0 ? '新客户' :
|
|
|
+ text === 1 ? '老客户' : ''
|
|
|
+ )
|
|
|
},
|
|
|
{
|
|
|
title: "面谈客户",
|
|
|
- dataIndex: "name",
|
|
|
- key: "name",
|
|
|
+ dataIndex: "nickname",
|
|
|
+ key: "nickname",
|
|
|
},
|
|
|
{
|
|
|
title: "面谈数",
|
|
@@ -44,21 +47,23 @@ class DetailedList extends Component{
|
|
|
event.stopPropagation();
|
|
|
this.setState({
|
|
|
visible1: true,
|
|
|
- aid: record.aid
|
|
|
+ uid: record.uid,
|
|
|
+ depId:record.id,
|
|
|
})
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
title: "签单数",
|
|
|
- dataIndex: "total",
|
|
|
- key: "total",
|
|
|
+ dataIndex: "sign",
|
|
|
+ key: "sign",
|
|
|
className: 'projectTable',
|
|
|
width: 150,
|
|
|
onCellClick: (record, event) => {
|
|
|
event.stopPropagation();
|
|
|
this.setState({
|
|
|
visible2: true,
|
|
|
- aid: record.aid
|
|
|
+ uid: record.uid,
|
|
|
+ depId:record.id,
|
|
|
})
|
|
|
},
|
|
|
},
|
|
@@ -243,153 +248,261 @@ class DetailedList extends Component{
|
|
|
)
|
|
|
},
|
|
|
],
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- 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;
|
|
|
- }
|
|
|
-
|
|
|
- searchList1(){
|
|
|
- let arr = [
|
|
|
- {
|
|
|
- type:'autoComplete',
|
|
|
- dataKey:'orderNo',
|
|
|
- api:'/api/admin/customer/listAdminByName',
|
|
|
- search:'adminName',
|
|
|
- placeholder:'请输入客户名称'
|
|
|
- },
|
|
|
- {
|
|
|
- type:'text',
|
|
|
- dataKey:'name',
|
|
|
- placeholder:'请输入客户名称'
|
|
|
- },
|
|
|
- {
|
|
|
- type:'departmentSelect',
|
|
|
- dataKey:'depId',
|
|
|
- placeholder:'请选择部门'
|
|
|
- },
|
|
|
- {
|
|
|
- type:'text',
|
|
|
- dataKey:'contractNo',
|
|
|
- placeholder:'请输入合同编号'
|
|
|
- },
|
|
|
- {
|
|
|
- type:'select',
|
|
|
- dataKey:'liquidationStatus',
|
|
|
- placeholder:'请选择结算状态',
|
|
|
- selectList:[
|
|
|
- {
|
|
|
- value:'0',
|
|
|
- label:'首付待付请'
|
|
|
- },
|
|
|
- {
|
|
|
- value:'1',
|
|
|
- label:'尾款待付清'
|
|
|
- },
|
|
|
- {
|
|
|
- value:'2',
|
|
|
- label:'已付清'
|
|
|
+ searchList:[
|
|
|
+ {
|
|
|
+ type:'departmentSelect',
|
|
|
+ dataKey:'depId',
|
|
|
+ placeholder:'请选择部门'
|
|
|
+ },
|
|
|
+ //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'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ searchList1:[
|
|
|
+ {
|
|
|
+ type:'select',
|
|
|
+ dataKey:'status',
|
|
|
+ placeholder:'请选择审核状态',
|
|
|
+ selectList:()=>{
|
|
|
+ let arr = [];
|
|
|
+ for(let i of clockState){
|
|
|
+ arr.push({
|
|
|
+ value:i.id,
|
|
|
+ label:i.title
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return arr;
|
|
|
}
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- type:'select',
|
|
|
- dataKey:'approval',
|
|
|
- placeholder:'请选择特批状态',
|
|
|
- selectList:[
|
|
|
- {
|
|
|
- value:'0',
|
|
|
- label:'非特批'
|
|
|
- },
|
|
|
- {
|
|
|
- value:'1',
|
|
|
- label:'特批'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'select',
|
|
|
+ dataKey:'clockIn',
|
|
|
+ placeholder:'请选择打卡状态',
|
|
|
+ selectList:[
|
|
|
+ {
|
|
|
+ value:'0',
|
|
|
+ label:'已打卡'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'1',
|
|
|
+ label:'未打卡'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'autoComplete',
|
|
|
+ dataKey:'aid',
|
|
|
+ api:'/api/admin/customer/listAdminByName',
|
|
|
+ search:'adminName',
|
|
|
+ placeholder:'请输入公出申请人'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'autoComplete',
|
|
|
+ dataKey:'sid',
|
|
|
+ api:'/api/admin/customer/listAdminByName',
|
|
|
+ search:'adminName',
|
|
|
+ placeholder:'请输入跟单人'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ columns2:[
|
|
|
+ {
|
|
|
+ title: "合同编号",
|
|
|
+ dataIndex: "contractNo",
|
|
|
+ key: "contractNo",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "订单编号",
|
|
|
+ dataIndex: "orderNo",
|
|
|
+ key: "orderNo",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "客户名称",
|
|
|
+ dataIndex: "userName",
|
|
|
+ key: "userName",
|
|
|
+ render:text=>{
|
|
|
+ return (
|
|
|
+ <Tooltip title={text}>
|
|
|
+ <div style={{
|
|
|
+ maxWidth:'150px',
|
|
|
+ overflow:'hidden',
|
|
|
+ textOverflow: "ellipsis",
|
|
|
+ whiteSpace:'nowrap',
|
|
|
+ }}>{text}</div>
|
|
|
+ </Tooltip>
|
|
|
+ )
|
|
|
}
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- type:'select',
|
|
|
- dataKey:'amountStatus',
|
|
|
- placeholder:'请选择签单金额',
|
|
|
- selectList:[
|
|
|
- {
|
|
|
- value:'0',
|
|
|
- label:'10万元以下'
|
|
|
- },
|
|
|
- {
|
|
|
- value:'1',
|
|
|
- label:'10~20万元'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "订单部门",
|
|
|
+ dataIndex: "depName",
|
|
|
+ key: "depName",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "下单时间",
|
|
|
+ dataIndex: "createDate",
|
|
|
+ key: "createTime",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "合同签订时间",
|
|
|
+ dataIndex: "signDate",
|
|
|
+ key: "signDate",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "流程状态",
|
|
|
+ dataIndex: "processStatus",
|
|
|
+ key: "processStatus",
|
|
|
+ render: (text) => {
|
|
|
+ return getProcessStatus(text);
|
|
|
},
|
|
|
- {
|
|
|
- value:'2',
|
|
|
- label:'20~30万元'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "签单金额(万元)",
|
|
|
+ dataIndex: "totalAmount",
|
|
|
+ key: "totalAmount",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "开票金额(万元)",
|
|
|
+ dataIndex: "invoiceAmount",
|
|
|
+ key: "invoiceAmount",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "已收款(万元)",
|
|
|
+ dataIndex: "settlementAmount",
|
|
|
+ key: "settlementAmount",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "结算状态",
|
|
|
+ dataIndex: "liquidationStatus",
|
|
|
+ key: "liquidationStatus",
|
|
|
+ render: (text) => {
|
|
|
+ return getLiquidationStatus(text);
|
|
|
},
|
|
|
- {
|
|
|
- value:'3',
|
|
|
- label:'30~40万元'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "是否特批",
|
|
|
+ dataIndex: "approval",
|
|
|
+ key: "approval",
|
|
|
+ render: (text) => {
|
|
|
+ return getApprovedState(text);
|
|
|
},
|
|
|
- {
|
|
|
- value:'4',
|
|
|
- label:'40万元以上'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "订单状态",
|
|
|
+ dataIndex: "orderStatus",
|
|
|
+ key: "orderStatus",
|
|
|
+ render: (text) => {
|
|
|
+ return getNewOrderStatus(text);
|
|
|
},
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- type:'times',
|
|
|
- title:'下单时间',
|
|
|
- dataKey:['starTime','endTime'],
|
|
|
- },
|
|
|
- ]
|
|
|
- return arr;
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "财务负责人",
|
|
|
+ dataIndex: "financeName",
|
|
|
+ key: "financeName",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ searchList2:[
|
|
|
+ {
|
|
|
+ type:'text',
|
|
|
+ placeholder:'请输入订单编号',
|
|
|
+ dataKey:'orderNo',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'text',
|
|
|
+ placeholder:'请输入客户名称',
|
|
|
+ dataKey:'name',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'text',
|
|
|
+ placeholder:'请输入合同编号',
|
|
|
+ dataKey:'contractNo',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'select',
|
|
|
+ dataKey:'liquidationStatus',
|
|
|
+ placeholder:'请选择结算状态',
|
|
|
+ selectList:[
|
|
|
+ {
|
|
|
+ value:'0',
|
|
|
+ label:'首付待付请'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'1',
|
|
|
+ label:'尾款待付清'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'2',
|
|
|
+ label:'已付清'
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'select',
|
|
|
+ dataKey:'approval',
|
|
|
+ placeholder:'请选择特批状态',
|
|
|
+ selectList:[
|
|
|
+ {
|
|
|
+ value:'0',
|
|
|
+ label:'非特批'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'1',
|
|
|
+ label:'特批'
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type:'select',
|
|
|
+ dataKey:'amountStatus',
|
|
|
+ placeholder:'请选择签单金额',
|
|
|
+ selectList:[
|
|
|
+ {
|
|
|
+ value:'0',
|
|
|
+ label:'10万元以下'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'1',
|
|
|
+ label:'10~20万元'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'2',
|
|
|
+ label:'20~30万元'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'3',
|
|
|
+ label:'30~40万元'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value:'4',
|
|
|
+ label:'40万元以上'
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ searchConfig:{}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
render() {
|
|
@@ -401,18 +514,29 @@ class DetailedList extends Component{
|
|
|
onOk={this.props.onCancel}
|
|
|
onCancel={this.props.onCancel}
|
|
|
width='1200px'
|
|
|
- title={this.props.recordInfor.province + '面谈表'}
|
|
|
+ title={this.props.recordInfor.name + '面谈表'}
|
|
|
footer=''
|
|
|
className="admin-desc-content">
|
|
|
<div className="user-content">
|
|
|
<TabelContent
|
|
|
- searchList={this.searchList()}
|
|
|
+ searchList={this.state.searchList}
|
|
|
columns={this.state.columns}
|
|
|
+ searchConfig={this.props.searchConfig}
|
|
|
tabelApi={'/api/admin/provinceFollowStatisticsList'}
|
|
|
exportApi={'/api/admin/provinceFollowStatisticsListExprot'}
|
|
|
query={{
|
|
|
province:this.props.recordInfor.id,
|
|
|
}}
|
|
|
+ onRowClick={()=>{}}
|
|
|
+ searchOperation={(value)=>{
|
|
|
+ for(let i of Object.keys(value)){
|
|
|
+ if(i === 'sort' || i === 'pageNo' || i === 'pageSize'){
|
|
|
+ delete value[i]
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ this.setState({searchConfig:value})}
|
|
|
+ }
|
|
|
dataProcessing={(data)=>{
|
|
|
let theArr = [];
|
|
|
for (let i = 0; i < data.data.length; i++) {
|
|
@@ -424,17 +548,22 @@ class DetailedList extends Component{
|
|
|
}}
|
|
|
/>
|
|
|
</div>
|
|
|
+
|
|
|
{this.state.visible1 && <Modal
|
|
|
maskClosable={false}
|
|
|
visible={this.state.visible1}
|
|
|
onOk={()=>{
|
|
|
this.setState({
|
|
|
- visible1:false
|
|
|
+ visible1:false,
|
|
|
+ uid:'',
|
|
|
+ depId:''
|
|
|
})
|
|
|
}}
|
|
|
onCancel={()=>{
|
|
|
this.setState({
|
|
|
- visible1:false
|
|
|
+ visible1:false,
|
|
|
+ uid:'',
|
|
|
+ depId:''
|
|
|
})
|
|
|
}}
|
|
|
width='1600px'
|
|
@@ -443,10 +572,73 @@ class DetailedList extends Component{
|
|
|
className="admin-desc-content">
|
|
|
<div className="user-content">
|
|
|
<TabelContent
|
|
|
- searchList={this.searchList1()}
|
|
|
+ scroll={{ x: 1200 }}
|
|
|
+ searchConfig={this.state.searchConfig}
|
|
|
+ searchList={this.state.searchList1}
|
|
|
columns={this.state.columns1}
|
|
|
tabelApi={'/api/admin/release/publicReleaseDtails'}
|
|
|
exportApi={'/api/admin/release/publicReleaseDtails/export'}
|
|
|
+ query={{
|
|
|
+ uid:this.state.uid,
|
|
|
+ depId:this.state.depId,
|
|
|
+ releaseStart:moment(this.state.searchConfig.date).startOf('month').format('YYYY-MM-DD'),
|
|
|
+ releaseEnd:moment(this.state.searchConfig.date).endOf('month').format('YYYY-MM-DD')
|
|
|
+ }}
|
|
|
+ exportExecProcessing={(data)=>{
|
|
|
+ data.uid = this.state.uid;
|
|
|
+ data.depId = this.state.depId;
|
|
|
+ return data;
|
|
|
+ }}
|
|
|
+ onRowClick={()=>{}}
|
|
|
+ dataProcessing={(data)=>{
|
|
|
+ let theArr = [];
|
|
|
+ for (let i = 0; i < data.data.list.length; i++) {
|
|
|
+ let thisdata = data.data.list[i];
|
|
|
+ thisdata.key=(data.data.pageNo - 1) * data.data.pageSize + i + 1;
|
|
|
+ theArr.push(thisdata);
|
|
|
+ }
|
|
|
+ return theArr;
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </Modal>}
|
|
|
+
|
|
|
+ {this.state.visible2 && <Modal
|
|
|
+ maskClosable={false}
|
|
|
+ visible={this.state.visible2}
|
|
|
+ onOk={()=>{
|
|
|
+ this.setState({
|
|
|
+ visible2:false,
|
|
|
+ uid:'',
|
|
|
+ depId:''
|
|
|
+ })
|
|
|
+ }}
|
|
|
+ onCancel={()=>{
|
|
|
+ this.setState({
|
|
|
+ visible2:false,
|
|
|
+ uid:'',
|
|
|
+ depId:''
|
|
|
+ })
|
|
|
+ }}
|
|
|
+ width='1600px'
|
|
|
+ title='客户订单列表'
|
|
|
+ footer=''
|
|
|
+ className="admin-desc-content">
|
|
|
+ <div className="user-content">
|
|
|
+ <TabelContent
|
|
|
+ scroll={{ x: 1200 }}
|
|
|
+ searchConfig={this.state.searchConfig}
|
|
|
+ searchList={this.state.searchList2}
|
|
|
+ columns={this.state.columns2}
|
|
|
+ tabelApi={'/api/admin/newOrder/orderNewList'}
|
|
|
+ query={{
|
|
|
+ uid:this.state.uid,
|
|
|
+ depId:this.state.depId,
|
|
|
+ specially: 8,
|
|
|
+ starTime:moment(this.state.searchConfig.date).startOf('month').format('YYYY-MM-DD'),
|
|
|
+ endTime:moment(this.state.searchConfig.date).endOf('month').format('YYYY-MM-DD')
|
|
|
+ }}
|
|
|
+ onRowClick={()=>{}}
|
|
|
dataProcessing={(data)=>{
|
|
|
let theArr = [];
|
|
|
for (let i = 0; i < data.data.list.length; i++) {
|
|
@@ -459,6 +651,7 @@ class DetailedList extends Component{
|
|
|
/>
|
|
|
</div>
|
|
|
</Modal>}
|
|
|
+
|
|
|
</Modal>
|
|
|
|
|
|
{this.state.imgListVisible ? <Modal
|