feat: clusters group
This commit is contained in:
+50
-10
@@ -54,16 +54,16 @@ export default [
|
||||
defaultIcon: 'icon-reranker',
|
||||
component: './playground/rerank'
|
||||
},
|
||||
{
|
||||
name: 'text2images',
|
||||
title: 'Text2Images',
|
||||
path: keepAliveRoutes.text2images,
|
||||
key: 'text2images',
|
||||
icon: 'icon-image1',
|
||||
selectedIcon: 'icon-image-filled',
|
||||
defaultIcon: 'icon-image1',
|
||||
component: './playground/images'
|
||||
},
|
||||
// {
|
||||
// name: 'text2images',
|
||||
// title: 'Text2Images',
|
||||
// path: keepAliveRoutes.text2images,
|
||||
// key: 'text2images',
|
||||
// icon: 'icon-image1',
|
||||
// selectedIcon: 'icon-image-filled',
|
||||
// defaultIcon: 'icon-image1',
|
||||
// component: './playground/images'
|
||||
// },
|
||||
{
|
||||
name: 'speech',
|
||||
title: 'Speech',
|
||||
@@ -105,6 +105,16 @@ export default [
|
||||
defaultIcon: 'icon-rocket-launch1',
|
||||
access: 'canSeeAdmin',
|
||||
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',
|
||||
path: '/access-control',
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { createFromIconfontCN } from '@ant-design/icons';
|
||||
import './iconfont/iconfont.js';
|
||||
// import './iconfont/iconfont.js';
|
||||
|
||||
const IconFont = createFromIconfontCN({
|
||||
scriptUrl: ''
|
||||
scriptUrl: '//at.alicdn.com/t/c/font_4613488_oxxxb51iqbp.js'
|
||||
});
|
||||
|
||||
export default IconFont;
|
||||
|
||||
@@ -12,6 +12,7 @@ export default {
|
||||
'menu.models.modelCatalog': 'Catalog',
|
||||
'menu.models.catalog': 'Model Catalog',
|
||||
'menu.models.deployment': 'Deployments',
|
||||
'menu.models.userModels': 'My Models',
|
||||
'menu.modelCatalog': 'Catalog',
|
||||
'menu.resources': 'Resources',
|
||||
'menu.apikeys': 'API Keys',
|
||||
@@ -25,5 +26,8 @@ export default {
|
||||
'menu.profile': 'Profile',
|
||||
'menu.login': 'Login',
|
||||
'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.accessControl': 'Access Control',
|
||||
'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) ==========
|
||||
@@ -36,4 +40,8 @@ export default {
|
||||
// 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 ==========
|
||||
|
||||
@@ -25,9 +25,23 @@ export default {
|
||||
'menu.resources.modelfiles': 'Файлы модлей',
|
||||
'menu.accessControl': 'Управление доступом',
|
||||
'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) ==========
|
||||
|
||||
// 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 ==========
|
||||
|
||||
@@ -11,6 +11,7 @@ export default {
|
||||
'menu.models.modelList': '部署与管理',
|
||||
'menu.models.modelCatalog': '模型库',
|
||||
'menu.models.deployment': '部署',
|
||||
'menu.models.userModels': '我的模型',
|
||||
'menu.modelCatalog': '模型库',
|
||||
'menu.models.catalog': '模型库',
|
||||
'menu.resources': '资源',
|
||||
@@ -25,5 +26,8 @@ export default {
|
||||
'menu.resources.modelfiles': '模型文件',
|
||||
'menu.accessControl': '访问控制',
|
||||
'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