diff --git a/src/locales/en-US/gpuservice.ts b/src/locales/en-US/gpuservice.ts index 2f751d9d..e9fae3d7 100644 --- a/src/locales/en-US/gpuservice.ts +++ b/src/locales/en-US/gpuservice.ts @@ -109,7 +109,7 @@ export default { 'CPU-only setup for environment preparation.', 'gpuservice.instance.stock': 'Stock', 'gpuservice.instance.sliced': 'Sliced', - 'gpuservice.instance.memory': 'Memory', + 'gpuservice.instance.memory': 'VRAM', 'gpuservice.instance.ram': 'RAM', 'gpuservice.instance.disk': 'Disk', 'gpuservice.instance.search.type.placeholder': 'Search by name', diff --git a/src/locales/ja-JP/gpuservice.ts b/src/locales/ja-JP/gpuservice.ts index 9c16979d..2ca082f7 100644 --- a/src/locales/ja-JP/gpuservice.ts +++ b/src/locales/ja-JP/gpuservice.ts @@ -107,7 +107,7 @@ export default { 'gpuservice.instance.gpuCount.zero': 'CPU のみを使用し、環境準備用です。', 'gpuservice.instance.stock': '在庫', 'gpuservice.instance.sliced': '分割', - 'gpuservice.instance.memory': 'Memory', + 'gpuservice.instance.memory': 'VRAM', 'gpuservice.instance.ram': 'RAM', 'gpuservice.instance.disk': 'ディスク', 'gpuservice.instance.search.type.placeholder': '名前で検索', diff --git a/src/locales/ru-RU/gpuservice.ts b/src/locales/ru-RU/gpuservice.ts index d0afbc70..c3b7244c 100644 --- a/src/locales/ru-RU/gpuservice.ts +++ b/src/locales/ru-RU/gpuservice.ts @@ -109,7 +109,7 @@ export default { 'gpuservice.instance.gpuCount.zero': 'Только CPU, для подготовки окружения.', 'gpuservice.instance.stock': 'Остаток', 'gpuservice.instance.sliced': 'Разделено', - 'gpuservice.instance.memory': 'Память', + 'gpuservice.instance.memory': 'VRAM', 'gpuservice.instance.ram': 'RAM', 'gpuservice.instance.disk': 'Диск', 'gpuservice.instance.search.type.placeholder': 'Поиск по имени', diff --git a/src/locales/tr-TR/gpuservice.ts b/src/locales/tr-TR/gpuservice.ts index ab60763c..1584a603 100644 --- a/src/locales/tr-TR/gpuservice.ts +++ b/src/locales/tr-TR/gpuservice.ts @@ -106,7 +106,7 @@ export default { 'gpuservice.instance.gpuCount.zero': 'Yalnızca CPU, ortam hazırlığı için.', 'gpuservice.instance.stock': 'Stok', 'gpuservice.instance.sliced': 'Bölünmüş', - 'gpuservice.instance.memory': 'Bellek', + 'gpuservice.instance.memory': 'VRAM', 'gpuservice.instance.ram': 'RAM', 'gpuservice.instance.disk': 'Disk', 'gpuservice.instance.search.type.placeholder': 'Ada göre ara', diff --git a/src/pages/gpu-service/instances/components/instance-type-item.tsx b/src/pages/gpu-service/instances/components/instance-type-item.tsx index 25e5976d..89c863e8 100644 --- a/src/pages/gpu-service/instances/components/instance-type-item.tsx +++ b/src/pages/gpu-service/instances/components/instance-type-item.tsx @@ -58,7 +58,7 @@ interface InstanceTypeItemProps { const MetaItem: React.FC<{ icon: string; - label: string; + label?: string; value?: string | null; showDot?: boolean; show?: boolean; @@ -141,12 +141,18 @@ const InstanceTypeItem: React.FC = ({ item }) => { value={specData?.sliced} > 0 + ? `${intl.formatMessage( + { + id: 'common.max' + }, + { count: item.maxAccelerator } + )}` + : '-' + } > )} diff --git a/src/pages/gpu-service/instances/config/types.ts b/src/pages/gpu-service/instances/config/types.ts index 7b31c975..e88988a9 100644 --- a/src/pages/gpu-service/instances/config/types.ts +++ b/src/pages/gpu-service/instances/config/types.ts @@ -133,6 +133,7 @@ export interface InstanceTypeItem { name: string; spec: InstanceTypeSpec; disabled?: boolean; + maxAccelerator?: number; status: InstanceTypeStatus; } diff --git a/src/pages/gpu-service/instances/services/use-query-instance-types.ts b/src/pages/gpu-service/instances/services/use-query-instance-types.ts index c2b802cd..31351a5e 100644 --- a/src/pages/gpu-service/instances/services/use-query-instance-types.ts +++ b/src/pages/gpu-service/instances/services/use-query-instance-types.ts @@ -25,8 +25,16 @@ export default function useQueryInstanceTypes() { const [dataList, setDataList] = React.useState([]); const isAvailable = (item: InstanceTypeItem) => { - if (!item.spec?.acceleratable) return true; - return getAcceleratorMax(item.status?.acceleratorTiers) > 0; + if (!item.spec?.acceleratable) + return { + maxAccelerator: 0, + available: true + }; + const max = getAcceleratorMax(item.status?.acceleratorTiers); + return { + maxAccelerator: max || 0, + available: (max || 0) > 0 + }; }; const queryInstanceTypes = async ( @@ -34,10 +42,14 @@ export default function useQueryInstanceTypes() { ) => { const res = await fetchData(params); - const list = (res?.items || []).map((item) => ({ - ...item, - disabled: !isAvailable(item) - })); + const list = (res?.items || []).map((item) => { + const remainingData = isAvailable(item); + return { + ...item, + maxAccelerator: remainingData.maxAccelerator, + disabled: !remainingData.available + }; + }); console.log('queryInstanceTypes', list); setDataList(list); return list;