Files
gpustack-ui/src/pages/usage/utils/get-breakdown-row-key.ts
T
Yuxing Deng 38107a67fe refactor(usage): switch breakdown dimension from model to route
Align with gpustack backend commits 7b57cd3b (add route dimension to
usage breakdown) and 51fd25c8 (use model_route_id as models_called):

* group_by, filters, and BreakdownItem now use the `route` dimension;
  `models` filter cascader is replaced with a flat `routes` selector
  (routes have no provider/cluster grouping).
* Tab / group_by option / column header keep the user-facing "模型 / Model"
  wording — only the underlying data dimension changed.
* Drop cluster_name / provider_type columns from the breakdown table;
  drop api_keys_used column per design.
* Fix pre-existing excel export bug in use-export-table — string
  dataIndex was lodash-joined char-by-char ("input_tokens" →
  "i_n_p_u_t..."), array dataIndex was used as a flat key against nested
  rows. Rebuilt around buildSheetMeta that emits a stable field key plus
  a formatMap using _.get(row, path) for nested values. Sheet name kept
  as `models` to match the visible column label.
2026-05-19 16:50:42 +08:00

23 lines
507 B
TypeScript

import { BreakdownItem } from '../config/types';
export const getBreakdownRowKey = (
record: BreakdownItem,
type: string
): string => {
if (type === 'models') {
return `${record.route?.label || ''}`;
}
if (type === 'users') {
return `${record.user.label}`;
}
if (type === 'api_keys') {
return `${record.api_key.label}`;
}
return `${record.date?.value || ''}-${record.route?.label || ''}-${record.user.label}-${record.api_key.label}`;
};
export default getBreakdownRowKey;