import React, { useContext, useEffect, useState } from 'react'; import { Row, Col, Button, Tabs, Table, Divider, Radio, Select, Space, Typography, Progress } from 'antd'; import { ContainerOutlined, SearchOutlined, UserSwitchOutlined } from '@ant-design/icons'; import { stores_Context } from '../config'; import { observer } from 'mobx-react'; import { NavLink, useParams } from 'react-router-dom'; import * as comm from '../utils/commons'; import * as config from '../config'; import { utils, writeFileXLSX } from 'xlsx'; import SearchForm from './../components/search/SearchForm'; import { dataFieldAlias } from '../libs/ht'; const { Text } = Typography; const Sale_KPI = () => { const { sale_store, date_picker_store: searchFormStore } = useContext(stores_Context); const { formValues } = searchFormStore; const { loading, operator } = sale_store.salesTrade; const [groupType, setGroupType] = useState('dept'); const dataSource = [].concat(sale_store.salesTrade[groupType], operator); const pageRefresh = (queryData) => { const overviewFlag = queryData.DepartmentList.toLowerCase() === 'all' || queryData.DepartmentList.toLowerCase().includes(','); const _groupType = overviewFlag ? 'overview' : 'dept'; setGroupType(_groupType); sale_store.fetchOperatorTradeData(_groupType, { ...queryData, groupDateType: 'year' }); sale_store.fetchOperatorTradeData('operator', { ...queryData, groupDateType: 'year' }); }; const monthCol = new Array(12).fill(1).map((_, index) => { return { title: `${index + 1}月`, dataIndex: `M${index + 1}Percent`, valueType: 'digit', width: '7.5em', render: (_, row) => (
{dataFieldAlias.SumML.formatter(row.mData[`month_${String(index + 1).padStart(2, '0')}`]?.MLKPIvalue || 0)}
{dataFieldAlias.SumML.formatter(row.mData[`month_${String(index + 1).padStart(2, '0')}`]?.SumML || 0)}
{row.mData[`month_${String(index + 1).padStart(2, '0')}`]?.MLKPIrates || 0 ? ( `${row.mData[`month_${String(index + 1).padStart(2, '0')}`]?.MLKPIrates || 0}%`} /> ) : ( '-' )}
), }; }); const columns = [ { title: ``, dataIndex: 'groupsLabel', editable: false, width: '7.5em', }, { title: '年度', dataIndex: 'yearValue', width: '10em', render: (_, row) => (
目标 {dataFieldAlias.SumML.formatter(row.yData?.MLKPIvalue || 0)}
完成 {dataFieldAlias.SumML.formatter(row.yData?.SumML || 0)}
{row.yData?.MLKPIrates || 0 ? `${row.yData?.MLKPIrates || 0}%`} /> : '-'}
), }, ...monthCol, ]; return (
{ pageRefresh(obj); }} /> ); }; export default observer(Sale_KPI);