import { useNavigate } from 'react-router-dom' import { message } from 'antd' import { useAppDispatch } from '@/store' import { openTab } from '@/store/tabs' import { IconAi } from '@/components/icons' interface KpiRow { role?: string item: string desc: string today: string total: string red?: boolean sub?: string roleSpan?: number subSpan?: number } const kpiRows: KpiRow[] = [ { role: '核价人员', item: '01/04【新增】新报价单', desc: '报价单明细', today: '-', total: '-', sub: '估价管理流程', roleSpan: 4, subSpan: 5 }, { item: '02/04 审核后报价单->客户确认价格', desc: '报价单明细', today: '16', total: '16', red: true }, { item: '03/04 客户不认可->二次确认', desc: '报价单明细', today: '-', total: '-' }, { item: '04/04 报价单->销售订单', desc: '销售订单明细', today: '1', total: '1', red: true }, { role: '销售人员', item: '04/04 报价单->销售订单(标签)', desc: '销售订单明细(标签)', today: '0', total: '0', red: true }, { role: '印前', item: '1/2 新增设计申请单', desc: '设计申请明细', today: '-', total: '-', sub: '设计制作流程', roleSpan: 2, subSpan: 2 }, { item: '2/2 设计申请->设计制作', desc: '根据设计申请单进行设计制作,当日16:00前审核的为今日任务,16:00后(含)顺延至次日', today: '11', total: '11', red: true }, { role: '客服部', item: '1/1 研发申请->文件制作', desc: '根据研发申请单,制作电子文件,当日16:00前下达的为今日任务,16:00后(含)顺延至次日', today: '0', total: '12', red: true, sub: '新品研发流程', subSpan: 5 }, { role: '客服部', item: '1/5 新增研发申请单', desc: '研发申请明细', today: '-', total: '-' }, { role: '技术研发部', item: '2/5 研发申请>>研发工单', desc: '及时开立研发工单,当日16:00前审核的为今日任务,16:00后(含)顺延至次日', today: '4', total: '4', red: true, roleSpan: 2 }, { item: '3/5 研发工单>>完工处理', desc: '计划人员在交货日期前确认工单完工', today: '7', total: '7', red: true }, { role: '客服部', item: '4/5 研发工单->客户确认', desc: '工单完工后需在7天内和客户确认样品', today: '-', total: '2703' }, { role: '技术研发部', item: '5/5 客户确认->工艺卡', desc: '根据客户已经确认的研发工单,生成产品工艺卡。当日16:00前确认的为今日任务,16:00后(含)顺延至次日', today: '0', total: '1632', red: true }, { role: '车间主管', item: '1/3 工单(测试部门数)->车间反馈', desc: '车间主管在工单完工前对测试材料进行数据反馈', today: '10', total: '115', red: true, sub: '材料测试流程', subSpan: 3 }, { item: '2/3 车间反馈->车间补充(多部门)', desc: '补充新材料测试信息,车间反馈次日16:00前的为当日任务,16:00后(含)顺延一日', today: '8', total: '8', red: true, roleSpan: 2 }, { role: '技术研发部', item: '2/3 车间反馈->工程部反馈(单部门)', desc: '工程部对新材料的测试结果进行反馈,车间反馈次日16:00前的为当日任务,16:00后(含)顺延一日', today: '23', total: '23', red: true }, ] const kpiHeads = ['导航类型', '角色', 'KPI待处理事项(当前行双击进入)', 'KPI内容描述及处理结果(点击蓝色查看明细)', '今日未处理', '未清总数', '子流程'] const navTreeRoles = [ ['所有部门', 37428, true], ['核价人员', 17], ['销售人员', 0], ['印前', 11], ['客服部', 30127], ['技术研发部', 47], ['车间主管', 316], ['工艺部', 6], ['物控部', 728], ['生产计划部', 225], ['版房', 120], ['生产车间', 596], ['工艺技术部', 0], ['品质管理部', 589], ['储运部', 3496], ['通用', 0], ['外发组', 867], ['材料仓管', 0], ['机修组', 42], ['应收', 30], ['出纳', 211], ['应付', 0], ['客服', 0], ] as const const navTreeFlows = [ ['估价管理流程', 17], ['设计制作流程', 11], ['新品研发流程', 11], ['材料测试流程', 51], ['订单下达流程', 30118], ] as const export default function Dashboard() { const navigate = useNavigate() const dispatch = useAppDispatch() const goUserList = () => { dispatch(openTab({ key: 'userlist', title: '用户列表', path: '/users' })) navigate('/users') } const total = kpiRows.length return (
KPI监控 今日未处理:37428 | 未清总数:56433
📁按角色
{navTreeRoles.map(([name, count, active]) => (
📄{name} ({count})
))}
📁按流程
{navTreeFlows.map(([name, count]) => (
📄{name} ({count})
))}
{kpiHeads.map(h => (
{h}
))}
按角色
{kpiRows.map((row, i) => { const altClass = i % 2 === 1 ? 'row-alt' : '' const curRow = i + 2 const cells: React.ReactNode[] = [] if (row.role) { cells.push(
{row.role}
, ) } cells.push(
{row.item}
,
{row.desc}
,
{row.today}
,
{row.total}
, ) if (row.sub && row.subSpan) { cells.push(
{row.sub}
, ) } return cells })}
常用操作
用户列表 message.info('系统功能模块设置 - 未实现')}>系统功能模块设置
) }