初始化:连锁餐饮数字化运营管理平台

This commit is contained in:
freedakgmail
2026-07-26 22:48:08 +08:00
commit a7874d79b5
67 changed files with 14391 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
import { useQuery } from '@tanstack/react-query'
import api from '@/lib/api'
import { DataTable } from '@/components/DataTable'
import { Pagination } from '@/components/Pagination'
import { useState, useMemo } from 'react'
const PAGE_SIZE = 10
export function IndicatorsPage() {
const [page, setPage] = useState(1)
const { data } = useQuery({
queryKey: ['indicators'],
queryFn: () => api.get('/tasks/indicators'),
})
const indicators = (data as any)?.data || []
const pagedIndicators = useMemo(() => indicators.slice((page - 1) * PAGE_SIZE, page * PAGE_SIZE), [indicators, page])
return (
<div className="space-y-4">
<h1 className="text-xl font-bold"></h1>
<Pagination page={page} pageSize={PAGE_SIZE} total={indicators.length} onPageChange={setPage} />
<DataTable
columns={[
{ key: 'indicator_name', label: '指标名称' },
{ key: 'business_definition', label: '业务定义', render: (r) => <span className="text-xs">{r.business_definition}</span> },
{ key: 'formula', label: '计算公式', render: (r) => <code className="text-xs">{r.formula}</code> },
{ key: 'update_frequency', label: '更新频率', align: 'center' },
{ key: 'owner', label: '负责人' },
{ key: 'yellow_threshold', label: '黄线', align: 'right' },
{ key: 'red_threshold', label: '红线', align: 'right' },
{ key: 'version_date', label: '版本日期', render: (r) => r.version_date?.substring(0, 10) },
]}
data={pagedIndicators}
/>
</div>
)
}