|
@@ -1,38 +1,58 @@
|
|
|
-import React from 'react'
|
|
|
|
|
|
|
+import React, { useState, useEffect } from 'react'
|
|
|
import ProTable from '@ant-design/pro-table'
|
|
import ProTable from '@ant-design/pro-table'
|
|
|
import { Row, Col, List, Divider, Select } from 'antd'
|
|
import { Row, Col, List, Divider, Select } from 'antd'
|
|
|
import { DualAxes } from '@ant-design/charts'
|
|
import { DualAxes } from '@ant-design/charts'
|
|
|
|
|
+import consts from '@/consts'
|
|
|
|
|
+import { queryDashboard } from '@/services/dashboard'
|
|
|
|
|
|
|
|
const Dashboard = () => {
|
|
const Dashboard = () => {
|
|
|
const { Option } = Select
|
|
const { Option } = Select
|
|
|
|
|
+ const [state, setState] = useState({
|
|
|
|
|
+ reminderData: [],
|
|
|
|
|
+ leaderboard: []
|
|
|
|
|
+ })
|
|
|
|
|
+ const initData = async payload => {
|
|
|
|
|
+ const {
|
|
|
|
|
+ code = -1,
|
|
|
|
|
+ data: { reminderData = [], leaderboard = [] } = { reminderData: [], leaderboard: [] }
|
|
|
|
|
+ } = await queryDashboard(payload)
|
|
|
|
|
+ if (code === consts.RET_CODE.SUCCESS) {
|
|
|
|
|
+ setState({ ...state, data: reminderData, leaderboard })
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log(reminderData)
|
|
|
|
|
+ console.log(leaderboard)
|
|
|
|
|
+ }
|
|
|
|
|
+ useEffect(() => {
|
|
|
|
|
+ initData()
|
|
|
|
|
+ }, [])
|
|
|
const columns = [
|
|
const columns = [
|
|
|
{
|
|
{
|
|
|
title: '超过周期未服务提醒',
|
|
title: '超过周期未服务提醒',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'name'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '7天',
|
|
title: '7天',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'day7'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '15天',
|
|
title: '15天',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'day15'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '30天',
|
|
title: '30天',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'day30'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '3个月',
|
|
title: '3个月',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'month3'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '6个月',
|
|
title: '6个月',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'month6'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '提醒逾期',
|
|
title: '提醒逾期',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'remind'
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
const columnsCustomer = [
|
|
const columnsCustomer = [
|
|
@@ -42,11 +62,11 @@ const Dashboard = () => {
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '姓名',
|
|
title: '姓名',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'staff_name'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '新增客户数',
|
|
title: '新增客户数',
|
|
|
- dataIndex: 'search'
|
|
|
|
|
|
|
+ dataIndex: 'count'
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
const uvBillData = [
|
|
const uvBillData = [
|
|
@@ -153,7 +173,13 @@ const Dashboard = () => {
|
|
|
return (
|
|
return (
|
|
|
<div>
|
|
<div>
|
|
|
<div>
|
|
<div>
|
|
|
- <ProTable columns={columns} search={false} toolBarRender={false} />
|
|
|
|
|
|
|
+ <ProTable
|
|
|
|
|
+ columns={columns}
|
|
|
|
|
+ dataSource={state.reminderData}
|
|
|
|
|
+ search={false}
|
|
|
|
|
+ toolBarRender={false}
|
|
|
|
|
+ pagination={false}
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
<div className="mt-4">
|
|
<div className="mt-4">
|
|
|
<Row gutter={16}>
|
|
<Row gutter={16}>
|
|
@@ -267,7 +293,13 @@ const Dashboard = () => {
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div className="text-center">新增客户排行榜</div>
|
|
<div className="text-center">新增客户排行榜</div>
|
|
|
- <ProTable columns={columnsCustomer} search={false} toolBarRender={false} />
|
|
|
|
|
|
|
+ <ProTable
|
|
|
|
|
+ columns={columnsCustomer}
|
|
|
|
|
+ dataSource={state.leaderboard}
|
|
|
|
|
+ search={false}
|
|
|
|
|
+ toolBarRender={false}
|
|
|
|
|
+ pagination={false}
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
</Col>
|
|
</Col>
|
|
|
</Row>
|
|
</Row>
|