feat: 用户订阅流量限速规则编辑器与列表信息增强

- 订阅表单新增卡片式流量限速规则编辑器(TrafficLimitRuleEditor),替换 ArrayInput
- 用户列表与订阅详情展示会员状态(member_status)、最近登录时间(last_login_time)
- ProTable 支持列级 meta.className 自定义样式
- 仪表盘统计与促销规则表单配套调整,用户文案双语同步
This commit is contained in:
2026-07-09 13:34:03 -07:00
parent 511ce4ff65
commit dfe1bafd1c
11 changed files with 367 additions and 158 deletions
@@ -313,7 +313,8 @@ export function ProTable<
<TableHead
className={cn(
"!z-auto",
getTableHeaderClass(header.column.id)
getTableHeaderClass(header.column.id),
getColumnClassName(header)
)}
key={header.id}
>
@@ -362,7 +363,10 @@ export function ProTable<
.filter((cell) => cell.column.id !== "sortable")
.map((cell) => (
<TableCell
className={getTableCellClass(cell.column.id)}
className={cn(
getTableCellClass(cell.column.id),
getColumnClassName(cell)
)}
key={cell.id}
>
{flexRender(
@@ -381,7 +385,10 @@ export function ProTable<
>
{row.getVisibleCells().map((cell) => (
<TableCell
className={getTableCellClass(cell.column.id)}
className={cn(
getTableCellClass(cell.column.id),
getColumnClassName(cell)
)}
key={cell.id}
>
{flexRender(
@@ -476,3 +483,17 @@ function getTableCellClass(columnId: string) {
}
return "truncate";
}
function getColumnClassName(
columnLike: {
column: {
columnDef: {
meta?: {
className?: string;
};
};
};
}
) {
return columnLike.column.columnDef.meta?.className || "";
}