feat: clusters group
This commit is contained in:
+50
-10
@@ -54,16 +54,16 @@ export default [
|
|||||||
defaultIcon: 'icon-reranker',
|
defaultIcon: 'icon-reranker',
|
||||||
component: './playground/rerank'
|
component: './playground/rerank'
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
name: 'text2images',
|
// name: 'text2images',
|
||||||
title: 'Text2Images',
|
// title: 'Text2Images',
|
||||||
path: keepAliveRoutes.text2images,
|
// path: keepAliveRoutes.text2images,
|
||||||
key: 'text2images',
|
// key: 'text2images',
|
||||||
icon: 'icon-image1',
|
// icon: 'icon-image1',
|
||||||
selectedIcon: 'icon-image-filled',
|
// selectedIcon: 'icon-image-filled',
|
||||||
defaultIcon: 'icon-image1',
|
// defaultIcon: 'icon-image1',
|
||||||
component: './playground/images'
|
// component: './playground/images'
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
name: 'speech',
|
name: 'speech',
|
||||||
title: 'Speech',
|
title: 'Speech',
|
||||||
@@ -105,6 +105,16 @@ export default [
|
|||||||
defaultIcon: 'icon-rocket-launch1',
|
defaultIcon: 'icon-rocket-launch1',
|
||||||
access: 'canSeeAdmin',
|
access: 'canSeeAdmin',
|
||||||
component: './llmodels/index'
|
component: './llmodels/index'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'userModels',
|
||||||
|
path: '/models/user-models',
|
||||||
|
key: 'userModels',
|
||||||
|
icon: 'icon-models',
|
||||||
|
selectedIcon: 'icon-models-filled',
|
||||||
|
defaultIcon: 'icon-models',
|
||||||
|
access: 'canSeeAdmin',
|
||||||
|
component: './llmodels/user-models'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -147,6 +157,36 @@ export default [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'clusterManagement',
|
||||||
|
path: '/cluster-management',
|
||||||
|
key: 'clusterManagement',
|
||||||
|
access: 'canSeeAdmin',
|
||||||
|
routes: [
|
||||||
|
{
|
||||||
|
path: '/cluster-management',
|
||||||
|
redirect: '/cluster-management/clusters'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'clusters',
|
||||||
|
path: '/cluster-management/clusters',
|
||||||
|
key: 'clusters',
|
||||||
|
icon: 'icon-k8s-outline',
|
||||||
|
selectedIcon: 'icon-k8s-filled',
|
||||||
|
defaultIcon: 'icon-k8s-outline',
|
||||||
|
component: './cluster-management/clusters'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'credentials',
|
||||||
|
path: '/cluster-management/credentials',
|
||||||
|
key: 'credentials',
|
||||||
|
icon: 'icon-credential-outline',
|
||||||
|
selectedIcon: 'icon-credential-filled',
|
||||||
|
defaultIcon: 'icon-credential-outline',
|
||||||
|
component: './cluster-management/credentials'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'accessControl',
|
name: 'accessControl',
|
||||||
path: '/access-control',
|
path: '/access-control',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { createFromIconfontCN } from '@ant-design/icons';
|
import { createFromIconfontCN } from '@ant-design/icons';
|
||||||
import './iconfont/iconfont.js';
|
// import './iconfont/iconfont.js';
|
||||||
|
|
||||||
const IconFont = createFromIconfontCN({
|
const IconFont = createFromIconfontCN({
|
||||||
scriptUrl: ''
|
scriptUrl: '//at.alicdn.com/t/c/font_4613488_oxxxb51iqbp.js'
|
||||||
});
|
});
|
||||||
|
|
||||||
export default IconFont;
|
export default IconFont;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ export default {
|
|||||||
'menu.models.modelCatalog': 'Catalog',
|
'menu.models.modelCatalog': 'Catalog',
|
||||||
'menu.models.catalog': 'Model Catalog',
|
'menu.models.catalog': 'Model Catalog',
|
||||||
'menu.models.deployment': 'Deployments',
|
'menu.models.deployment': 'Deployments',
|
||||||
|
'menu.models.userModels': 'My Models',
|
||||||
'menu.modelCatalog': 'Catalog',
|
'menu.modelCatalog': 'Catalog',
|
||||||
'menu.resources': 'Resources',
|
'menu.resources': 'Resources',
|
||||||
'menu.apikeys': 'API Keys',
|
'menu.apikeys': 'API Keys',
|
||||||
@@ -25,5 +26,8 @@ export default {
|
|||||||
'menu.profile': 'Profile',
|
'menu.profile': 'Profile',
|
||||||
'menu.login': 'Login',
|
'menu.login': 'Login',
|
||||||
'menu.usage': 'Usage',
|
'menu.usage': 'Usage',
|
||||||
'menu.404': '404'
|
'menu.404': '404',
|
||||||
|
'menu.clusterManagement': 'Cluster Management',
|
||||||
|
'menu.clusterManagement.clusters': 'Clusters',
|
||||||
|
'menu.clusterManagement.credentials': 'Credentials'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -25,7 +25,11 @@ export default {
|
|||||||
'menu.resources.modelfiles': 'Model Files',
|
'menu.resources.modelfiles': 'Model Files',
|
||||||
'menu.accessControl': 'Access Control',
|
'menu.accessControl': 'Access Control',
|
||||||
'menu.accessControl.apikeys': 'API Keys',
|
'menu.accessControl.apikeys': 'API Keys',
|
||||||
'menu.accessControl.users': 'Users'
|
'menu.accessControl.users': 'Users',
|
||||||
|
'menu.clusterManagement': 'Cluster Management',
|
||||||
|
'menu.clusterManagement.clusters': 'Clusters',
|
||||||
|
'menu.clusterManagement.credentials': 'Credentials',
|
||||||
|
'menu.models.userModels': 'My Models'
|
||||||
};
|
};
|
||||||
|
|
||||||
// ========== To-Do: Translate Keys (Remove After Translation) ==========
|
// ========== To-Do: Translate Keys (Remove After Translation) ==========
|
||||||
@@ -36,4 +40,8 @@ export default {
|
|||||||
// 5. 'menu.accessControl': 'Access Control',
|
// 5. 'menu.accessControl': 'Access Control',
|
||||||
// 6. 'menu.accessControl.apikeys': 'API Keys',
|
// 6. 'menu.accessControl.apikeys': 'API Keys',
|
||||||
// 7. 'menu.accessControl.users': 'Users',
|
// 7. 'menu.accessControl.users': 'Users',
|
||||||
|
// 8. 'menu.clusterManagement': 'Cluster Management',
|
||||||
|
// 9. 'menu.clusterManagement.clusters': 'Clusters',
|
||||||
|
// 10. 'menu.clusterManagement.credentials': 'Credentials',
|
||||||
|
// 11. 'menu.models.userModels': 'My Models'
|
||||||
// ========== End of To-Do List ==========
|
// ========== End of To-Do List ==========
|
||||||
|
|||||||
@@ -25,9 +25,23 @@ export default {
|
|||||||
'menu.resources.modelfiles': 'Файлы модлей',
|
'menu.resources.modelfiles': 'Файлы модлей',
|
||||||
'menu.accessControl': 'Управление доступом',
|
'menu.accessControl': 'Управление доступом',
|
||||||
'menu.accessControl.apikeys': 'API Ключи',
|
'menu.accessControl.apikeys': 'API Ключи',
|
||||||
'menu.accessControl.users': 'Пользователи'
|
'menu.accessControl.users': 'Пользователи',
|
||||||
|
'menu.clusterManagement': 'Cluster Management',
|
||||||
|
'menu.clusterManagement.clusters': 'Clusters',
|
||||||
|
'menu.clusterManagement.credentials': 'Credentials',
|
||||||
|
'menu.models.userModels': 'My Models'
|
||||||
};
|
};
|
||||||
|
|
||||||
// ========== To-Do: Translate Keys (Remove After Translation) ==========
|
// ========== To-Do: Translate Keys (Remove After Translation) ==========
|
||||||
|
// 1. 'menu.models.deployment': 'Deployment',
|
||||||
|
// 2. 'menu.resources.workers': 'Workers',
|
||||||
|
// 3. 'menu.resources.gpus': 'GPUs',
|
||||||
|
// 4. 'menu.resources.modelfiles': 'Model Files',
|
||||||
|
// 5. 'menu.accessControl': 'Access Control',
|
||||||
|
// 6. 'menu.accessControl.apikeys': 'API Keys',
|
||||||
|
// 7. 'menu.accessControl.users': 'Users',
|
||||||
|
// 8. 'menu.clusterManagement': 'Cluster Management',
|
||||||
|
// 9. 'menu.clusterManagement.clusters': 'Clusters',
|
||||||
|
// 10. 'menu.clusterManagement.credentials': 'Credentials',
|
||||||
|
// 11. 'menu.models.userModels': 'My Models'
|
||||||
// ========== End of To-Do List ==========
|
// ========== End of To-Do List ==========
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ export default {
|
|||||||
'menu.models.modelList': '部署与管理',
|
'menu.models.modelList': '部署与管理',
|
||||||
'menu.models.modelCatalog': '模型库',
|
'menu.models.modelCatalog': '模型库',
|
||||||
'menu.models.deployment': '部署',
|
'menu.models.deployment': '部署',
|
||||||
|
'menu.models.userModels': '我的模型',
|
||||||
'menu.modelCatalog': '模型库',
|
'menu.modelCatalog': '模型库',
|
||||||
'menu.models.catalog': '模型库',
|
'menu.models.catalog': '模型库',
|
||||||
'menu.resources': '资源',
|
'menu.resources': '资源',
|
||||||
@@ -25,5 +26,8 @@ export default {
|
|||||||
'menu.resources.modelfiles': '模型文件',
|
'menu.resources.modelfiles': '模型文件',
|
||||||
'menu.accessControl': '访问控制',
|
'menu.accessControl': '访问控制',
|
||||||
'menu.accessControl.apikeys': 'API 密钥',
|
'menu.accessControl.apikeys': 'API 密钥',
|
||||||
'menu.accessControl.users': '用户'
|
'menu.accessControl.users': '用户',
|
||||||
|
'menu.clusterManagement': '集群管理',
|
||||||
|
'menu.clusterManagement.clusters': '集群',
|
||||||
|
'menu.clusterManagement.credentials': '凭据'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import { PageContainer } from '@ant-design/pro-components';
|
||||||
|
import { useIntl } from '@umijs/max';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const Cluster: React.FC = () => {
|
||||||
|
const intl = useIntl();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<PageContainer
|
||||||
|
ghost
|
||||||
|
header={{
|
||||||
|
title: intl.formatMessage({ id: 'menu.clusterManagement.clusters' }),
|
||||||
|
style: {
|
||||||
|
paddingInline: 'var(--layout-content-header-inlinepadding)'
|
||||||
|
},
|
||||||
|
breadcrumb: {}
|
||||||
|
}}
|
||||||
|
extra={[]}
|
||||||
|
>
|
||||||
|
{intl.formatMessage({ id: 'menu.clusterManagement.clusters' })}
|
||||||
|
</PageContainer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Cluster;
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { PageContainer } from '@ant-design/pro-components';
|
||||||
|
import { useIntl } from '@umijs/max';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const Credential: React.FC = () => {
|
||||||
|
const intl = useIntl();
|
||||||
|
return (
|
||||||
|
<PageContainer
|
||||||
|
ghost
|
||||||
|
header={{
|
||||||
|
title: intl.formatMessage({ id: 'menu.clusterManagement.credentials' }),
|
||||||
|
style: {
|
||||||
|
paddingInline: 'var(--layout-content-header-inlinepadding)'
|
||||||
|
},
|
||||||
|
breadcrumb: {}
|
||||||
|
}}
|
||||||
|
extra={[]}
|
||||||
|
>
|
||||||
|
{intl.formatMessage({ id: 'menu.clusterManagement.credentials' })}
|
||||||
|
</PageContainer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Credential;
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { PageContainer } from '@ant-design/pro-components';
|
||||||
|
import { useIntl } from '@umijs/max';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const UserModels: React.FC = () => {
|
||||||
|
const intl = useIntl();
|
||||||
|
return (
|
||||||
|
<PageContainer
|
||||||
|
ghost
|
||||||
|
header={{
|
||||||
|
title: intl.formatMessage({ id: 'menu.models.userModels' }),
|
||||||
|
style: {
|
||||||
|
paddingInline: 'var(--layout-content-header-inlinepadding)'
|
||||||
|
},
|
||||||
|
breadcrumb: {}
|
||||||
|
}}
|
||||||
|
extra={[]}
|
||||||
|
>
|
||||||
|
{intl.formatMessage({ id: 'menu.models.userModels' })}
|
||||||
|
</PageContainer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default UserModels;
|
||||||
Reference in New Issue
Block a user