From 288bfebc134595592014b21b3661cbf2bec077dc Mon Sep 17 00:00:00 2001 From: jialin Date: Mon, 18 May 2026 15:18:01 +0800 Subject: [PATCH] fix: filter user option in usage --- .../login/components/local-user-form.tsx | 3 ++- src/pages/usage/components/daily-usage.tsx | 21 ++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/pages/login/components/local-user-form.tsx b/src/pages/login/components/local-user-form.tsx index e1f72690..adba819d 100644 --- a/src/pages/login/components/local-user-form.tsx +++ b/src/pages/login/components/local-user-form.tsx @@ -4,7 +4,7 @@ import { LockOutlined, UserOutlined } from '@ant-design/icons'; -import { Input as CInput, HighlightCode } from '@gpustack/core-ui'; +import { Input as CInput, HighlightCode, IconFont } from '@gpustack/core-ui'; import { useIntl } from '@umijs/max'; import { Button, Checkbox, Divider, Form, FormInstance } from 'antd'; import { createStyles } from 'antd-style'; @@ -149,6 +149,7 @@ const LocalUserForm: React.FC = (props) => { type="primary" block loading={props.loading} + icon={} style={{ height: '48px', fontSize: '14px' }} > {intl.formatMessage({ id: 'common.button.login' })} diff --git a/src/pages/usage/components/daily-usage.tsx b/src/pages/usage/components/daily-usage.tsx index 84dad7b6..7f38c184 100644 --- a/src/pages/usage/components/daily-usage.tsx +++ b/src/pages/usage/components/daily-usage.tsx @@ -1,7 +1,7 @@ import useCoolColors from '@/hooks/use-cool-colors'; import BarChart from '@/pages/_components/bar-chart'; import { BaseSelect, CardWrapper } from '@gpustack/core-ui'; -import { useIntl } from '@umijs/max'; +import { useIntl, useModel } from '@umijs/max'; import { Segmented } from 'antd'; import dayjs from 'dayjs'; import React, { useMemo } from 'react'; @@ -80,6 +80,8 @@ const DailyUsage: React.FC = (props) => { onGranularityChange } = props; const generateCoolColors = useCoolColors(); + const { initialState } = useModel('@@initialState'); + const { currentUser } = initialState || {}; const labelFormatter = (v: any) => { if (granularity === 'month') { @@ -245,6 +247,18 @@ const DailyUsage: React.FC = (props) => { onGroupByChange(value || null); }; + const groupByOptionsFiltered = groupByOptions + .map((item) => ({ + label: intl.formatMessage({ id: item.label }), + value: item.value + })) + .filter((option) => { + if (currentUser?.is_admin) { + return true; + } + return option.value !== 'user'; + }); + return (
@@ -275,10 +289,7 @@ const DailyUsage: React.FC = (props) => { {intl.formatMessage({ id: 'usage.filter.groupBy' })} } - options={groupByOptions.map((item) => ({ - label: intl.formatMessage({ id: item.label }), - value: item.value - }))} + options={groupByOptionsFiltered} value={groupBy} popupMatchSelectWidth={false} onChange={handleOnGroupByChange}