refactor: support i18n
This commit is contained in:
@@ -32,6 +32,7 @@ import {
|
||||
TabsList,
|
||||
TabsTrigger,
|
||||
} from "@/components/ui/tabs"
|
||||
import { useI18n } from "@/i18n/provider"
|
||||
|
||||
type DashboardTask = {
|
||||
id: number
|
||||
@@ -43,6 +44,7 @@ type DashboardTask = {
|
||||
}
|
||||
|
||||
export function DataTable({ data }: { data: DashboardTask[] }) {
|
||||
const t = useI18n()
|
||||
return (
|
||||
<Tabs
|
||||
defaultValue="modules"
|
||||
@@ -50,29 +52,29 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
|
||||
>
|
||||
<div className="flex flex-col gap-4 md:flex-row md:items-center md:justify-between">
|
||||
<div>
|
||||
<CardTitle className="text-xl">模块推进看板</CardTitle>
|
||||
<CardTitle className="text-xl">{t("scaffold.moduleBoard")}</CardTitle>
|
||||
<CardDescription className="mt-1">
|
||||
这里是后台一期的功能骨架清单,后续可替换为真实接口列表。
|
||||
{t("scaffold.moduleBoardDescription")}
|
||||
</CardDescription>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Input className="w-full md:w-64" placeholder="搜索模块名称" />
|
||||
<Input className="w-full md:w-64" placeholder={t("scaffold.searchModule")} />
|
||||
<Button variant="outline">
|
||||
<FilterIcon />
|
||||
筛选
|
||||
{t("scaffold.filter")}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<TabsList className="w-fit">
|
||||
<TabsTrigger value="modules">模块列表</TabsTrigger>
|
||||
<TabsTrigger value="milestones">里程碑</TabsTrigger>
|
||||
<TabsTrigger value="modules">{t("scaffold.moduleList")}</TabsTrigger>
|
||||
<TabsTrigger value="milestones">{t("scaffold.milestones")}</TabsTrigger>
|
||||
</TabsList>
|
||||
<TabsContent value="modules" className="m-0">
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>一期模块拆解</CardTitle>
|
||||
<CardTitle>{t("scaffold.phaseOneModules")}</CardTitle>
|
||||
<CardDescription>
|
||||
覆盖账号权限、知识库、渠道接入与 Skill 能力入口。
|
||||
{t("scaffold.phaseOneDescription")}
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
@@ -80,11 +82,11 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
|
||||
<Table>
|
||||
<TableHeader className="bg-muted/50">
|
||||
<TableRow>
|
||||
<TableHead>模块</TableHead>
|
||||
<TableHead>负责人</TableHead>
|
||||
<TableHead>状态</TableHead>
|
||||
<TableHead>完成度</TableHead>
|
||||
<TableHead className="text-right">更新时间</TableHead>
|
||||
<TableHead>{t("scaffold.module")}</TableHead>
|
||||
<TableHead>{t("scaffold.owner")}</TableHead>
|
||||
<TableHead>{t("scaffold.status")}</TableHead>
|
||||
<TableHead>{t("scaffold.progress")}</TableHead>
|
||||
<TableHead className="text-right">{t("scaffold.updatedAt")}</TableHead>
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
@@ -94,7 +96,7 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
|
||||
<TableCell>{item.owner}</TableCell>
|
||||
<TableCell>
|
||||
<Badge variant="outline" className="px-1.5">
|
||||
{item.status === "已完成" ? (
|
||||
{item.status === t("scaffold.done") ? (
|
||||
<CircleCheckIcon className="fill-green-500 text-green-500" />
|
||||
) : (
|
||||
<Clock3Icon className="text-amber-500" />
|
||||
@@ -117,16 +119,16 @@ export function DataTable({ data }: { data: DashboardTask[] }) {
|
||||
<TabsContent value="milestones" className="m-0">
|
||||
<Card className="border-dashed">
|
||||
<CardHeader>
|
||||
<CardTitle>下一阶段里程碑</CardTitle>
|
||||
<CardTitle>{t("scaffold.nextMilestone")}</CardTitle>
|
||||
<CardDescription>
|
||||
当前已完成 UI 基础骨架,下一步接入真实 API 和业务表单。
|
||||
{t("scaffold.nextMilestoneDescription")}
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="grid gap-3">
|
||||
{[
|
||||
"打通登录、用户、角色、权限列表接口。",
|
||||
"补充表单弹窗、分页查询与错误处理。",
|
||||
"接入知识库与渠道模块的实际配置能力。",
|
||||
t("scaffold.milestoneLogin"),
|
||||
t("scaffold.milestoneForms"),
|
||||
t("scaffold.milestoneKnowledge"),
|
||||
].map((item) => (
|
||||
<div
|
||||
key={item}
|
||||
|
||||
Reference in New Issue
Block a user