fix: distributed servers info
This commit is contained in:
@@ -1,22 +0,0 @@
|
|||||||
:local(.delete-modal-content) {
|
|
||||||
display: flex;
|
|
||||||
font-size: var(--font-size-middle);
|
|
||||||
|
|
||||||
:global {
|
|
||||||
.anticon {
|
|
||||||
font-size: 20px;
|
|
||||||
margin-right: 10px;
|
|
||||||
color: var(--ant-color-warning);
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
:local(.content) {
|
|
||||||
padding-top: 15px;
|
|
||||||
padding-left: 30px;
|
|
||||||
}
|
|
||||||
@@ -9,9 +9,35 @@ import {
|
|||||||
message,
|
message,
|
||||||
type ModalFuncProps
|
type ModalFuncProps
|
||||||
} from 'antd';
|
} from 'antd';
|
||||||
import { FC, forwardRef, useImperativeHandle, useState } from 'react';
|
import { createStyles } from 'antd-style';
|
||||||
|
import { useState } from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import Styles from './index.less';
|
|
||||||
|
const useStyles = createStyles(({ css }) => ({
|
||||||
|
'delete-modal-content': css`
|
||||||
|
display: flex;
|
||||||
|
font-size: var(--font-size-middle);
|
||||||
|
.anticon {
|
||||||
|
font-size: 20px;
|
||||||
|
margin-right: 10px;
|
||||||
|
color: var(--ant-color-warning);
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: var(--font-weight-500);
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
content: css`
|
||||||
|
padding-top: 15px;
|
||||||
|
padding-left: 30px;
|
||||||
|
color: var(--ant-color-text-secondary);
|
||||||
|
white-space: pre-line;
|
||||||
|
span {
|
||||||
|
color: var(--ant-color-text);
|
||||||
|
}
|
||||||
|
`
|
||||||
|
}));
|
||||||
|
|
||||||
const CheckboxWrapper = styled.div`
|
const CheckboxWrapper = styled.div`
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
@@ -25,12 +51,8 @@ const CheckboxWrapper = styled.div`
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
interface DeleteModalProps {
|
|
||||||
ref: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface DataOptions {
|
interface DataOptions {
|
||||||
content: string;
|
content?: string;
|
||||||
selection?: boolean;
|
selection?: boolean;
|
||||||
name?: string;
|
name?: string;
|
||||||
okText?: string;
|
okText?: string;
|
||||||
@@ -43,28 +65,33 @@ interface DataOptions {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const DeleteModal: FC<DeleteModalProps> = forwardRef((props, ref) => {
|
interface Configuration {
|
||||||
|
checked: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function useDeleteModel() {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
|
const { styles } = useStyles();
|
||||||
const { saveScrollHeight, restoreScrollHeight } = useBodyScroll();
|
const { saveScrollHeight, restoreScrollHeight } = useBodyScroll();
|
||||||
const [visible, setVisible] = useState(false);
|
const [visible, setVisible] = useState(false);
|
||||||
const [checked, setChecked] = useState(false);
|
const [configuration, setConfiguration] = useState<Configuration>({
|
||||||
|
checked: false
|
||||||
|
});
|
||||||
const [config, setConfig] = useState<ModalFuncProps & DataOptions>({} as any);
|
const [config, setConfig] = useState<ModalFuncProps & DataOptions>({} as any);
|
||||||
|
|
||||||
useImperativeHandle(ref, () => ({
|
const show = (data: ModalFuncProps & DataOptions) => {
|
||||||
show: (data: ModalFuncProps & DataOptions) => {
|
saveScrollHeight();
|
||||||
saveScrollHeight();
|
setConfig(data);
|
||||||
setConfig(data);
|
setConfiguration({
|
||||||
setChecked(data.checkConfig?.defautlChecked || false);
|
checked: data.checkConfig?.defautlChecked || false
|
||||||
setVisible(true);
|
});
|
||||||
},
|
setVisible(true);
|
||||||
hide: () => {
|
};
|
||||||
setVisible(false);
|
|
||||||
restoreScrollHeight();
|
const hide = () => {
|
||||||
},
|
setVisible(false);
|
||||||
configuration: {
|
restoreScrollHeight();
|
||||||
checked: checked
|
};
|
||||||
}
|
|
||||||
}));
|
|
||||||
|
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
@@ -94,75 +121,89 @@ const DeleteModal: FC<DeleteModalProps> = forwardRef((props, ref) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
const DeleteModal = () => {
|
||||||
<Modal
|
return (
|
||||||
style={{
|
<Modal
|
||||||
top: '20%'
|
style={{
|
||||||
}}
|
top: '20%'
|
||||||
open={visible}
|
|
||||||
onOk={handleOk}
|
|
||||||
onCancel={handleCancel}
|
|
||||||
destroyOnClose={true}
|
|
||||||
closeIcon={false}
|
|
||||||
maskClosable={false}
|
|
||||||
keyboard={false}
|
|
||||||
width={460}
|
|
||||||
styles={{}}
|
|
||||||
footer={
|
|
||||||
<Space size={20}>
|
|
||||||
<Button onClick={handleCancel} size="middle">
|
|
||||||
{config.cancelText
|
|
||||||
? intl.formatMessage({ id: config.cancelText })
|
|
||||||
: intl.formatMessage({ id: 'common.button.cancel' })}
|
|
||||||
</Button>
|
|
||||||
<Button type="primary" onClick={handleOk} size="middle">
|
|
||||||
{config.okText
|
|
||||||
? intl.formatMessage({ id: config.okText })
|
|
||||||
: intl.formatMessage({ id: 'common.button.delete' })}
|
|
||||||
</Button>
|
|
||||||
</Space>
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<div className={Styles['delete-modal-content']}>
|
|
||||||
<span className="title">
|
|
||||||
<ExclamationCircleFilled />
|
|
||||||
<span>
|
|
||||||
{config.title
|
|
||||||
? intl.formatMessage({ id: config.title })
|
|
||||||
: intl.formatMessage({ id: 'common.title.delete.confirm' })}
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className={Styles['content']}
|
|
||||||
dangerouslySetInnerHTML={{
|
|
||||||
__html:
|
|
||||||
config.content &&
|
|
||||||
intl.formatMessage(
|
|
||||||
{
|
|
||||||
id: config.operation || ''
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: intl.formatMessage({ id: config.content }),
|
|
||||||
name: config.name
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}}
|
}}
|
||||||
></div>
|
open={visible}
|
||||||
{config.checkConfig && (
|
onOk={handleOk}
|
||||||
<CheckboxWrapper>
|
onCancel={handleCancel}
|
||||||
<Checkbox
|
destroyOnClose={false}
|
||||||
checked={checked}
|
closeIcon={false}
|
||||||
onChange={(e) => setChecked(e.target.checked)}
|
maskClosable={false}
|
||||||
>
|
keyboard={false}
|
||||||
<span className="check-text">
|
width={460}
|
||||||
{intl.formatMessage({ id: config.checkConfig?.checkText })}
|
styles={{
|
||||||
|
footer: {
|
||||||
|
marginTop: '20px'
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
footer={
|
||||||
|
<Space size={20}>
|
||||||
|
<Button onClick={handleCancel} size="middle">
|
||||||
|
{config.cancelText
|
||||||
|
? intl.formatMessage({ id: config.cancelText })
|
||||||
|
: intl.formatMessage({ id: 'common.button.cancel' })}
|
||||||
|
</Button>
|
||||||
|
<Button type="primary" onClick={handleOk} size="middle">
|
||||||
|
{config.okText
|
||||||
|
? intl.formatMessage({ id: config.okText })
|
||||||
|
: intl.formatMessage({ id: 'common.button.delete' })}
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<div className={styles['delete-modal-content']}>
|
||||||
|
<span className="title">
|
||||||
|
<ExclamationCircleFilled />
|
||||||
|
<span>
|
||||||
|
{config.title
|
||||||
|
? intl.formatMessage({ id: config.title })
|
||||||
|
: intl.formatMessage({ id: 'common.title.delete.confirm' })}
|
||||||
</span>
|
</span>
|
||||||
</Checkbox>
|
</span>
|
||||||
</CheckboxWrapper>
|
</div>
|
||||||
)}
|
<div
|
||||||
</Modal>
|
className={styles['content']}
|
||||||
);
|
dangerouslySetInnerHTML={{
|
||||||
});
|
__html: config.content
|
||||||
|
? intl.formatMessage(
|
||||||
export default DeleteModal;
|
{
|
||||||
|
id: config.operation || ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: intl.formatMessage({ id: config.content }),
|
||||||
|
name: config.name
|
||||||
|
}
|
||||||
|
)
|
||||||
|
: ''
|
||||||
|
}}
|
||||||
|
></div>
|
||||||
|
{config.checkConfig && (
|
||||||
|
<CheckboxWrapper>
|
||||||
|
<Checkbox
|
||||||
|
checked={configuration.checked}
|
||||||
|
onChange={(e) =>
|
||||||
|
setConfiguration({
|
||||||
|
checked: e.target.checked
|
||||||
|
})
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<span className="check-text">
|
||||||
|
{intl.formatMessage({ id: config.checkConfig?.checkText })}
|
||||||
|
</span>
|
||||||
|
</Checkbox>
|
||||||
|
</CheckboxWrapper>
|
||||||
|
)}
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
DeleteModal,
|
||||||
|
show,
|
||||||
|
hide,
|
||||||
|
configuration
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: iconfont; /* Project id 4613488 */
|
font-family: iconfont; /* Project id 4613488 */
|
||||||
src: url('iconfont.woff2?t=1747231573342') format('woff2'),
|
src: url('iconfont.woff2?t=1750854031026') format('woff2'),
|
||||||
url('iconfont.woff?t=1747231573342') format('woff'),
|
url('iconfont.woff?t=1750854031026') format('woff'),
|
||||||
url('iconfont.ttf?t=1747231573342') format('truetype');
|
url('iconfont.ttf?t=1750854031026') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
@@ -13,6 +13,130 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-language::before {
|
||||||
|
content: "\e679";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-help::before {
|
||||||
|
content: "\e67a";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-key-filled::before {
|
||||||
|
content: "\e67b";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-key::before {
|
||||||
|
content: "\e67d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-resources::before {
|
||||||
|
content: "\e67e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-users::before {
|
||||||
|
content: "\e67f";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-resources-filled::before {
|
||||||
|
content: "\e680";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-users-filled::before {
|
||||||
|
content: "\e681";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-model::before {
|
||||||
|
content: "\e676";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-model-filled::before {
|
||||||
|
content: "\e678";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-layers-filled::before {
|
||||||
|
content: "\e671";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-layers::before {
|
||||||
|
content: "\e673";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-experiment::before {
|
||||||
|
content: "\e674";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-experiment-filled::before {
|
||||||
|
content: "\e675";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-dashboard::before {
|
||||||
|
content: "\e66d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-dashboard-filled::before {
|
||||||
|
content: "\e66e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-expand-left::before {
|
||||||
|
content: "\ea48";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-expand-right::before {
|
||||||
|
content: "\ea49";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-users-fill::before {
|
||||||
|
content: "\e677";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-layers-fill::before {
|
||||||
|
content: "\e89d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-key-fill::before {
|
||||||
|
content: "\e80e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-server-fill::before {
|
||||||
|
content: "\e7a3";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-model-fill::before {
|
||||||
|
content: "\e7b7";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-left_panel_close::before {
|
||||||
|
content: "\e668";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-left_panel_open::before {
|
||||||
|
content: "\e669";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-playcircle-fill::before {
|
||||||
|
content: "\e665";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-stopcircle-fill::before {
|
||||||
|
content: "\e666";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-play-speed::before {
|
||||||
|
content: "\e856";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-more::before {
|
||||||
|
content: "\e62e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-play::before {
|
||||||
|
content: "\e9f9";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-pause::before {
|
||||||
|
content: "\e713";
|
||||||
|
}
|
||||||
|
|
||||||
.icon-dark_theme::before {
|
.icon-dark_theme::before {
|
||||||
content: "\e646";
|
content: "\e646";
|
||||||
}
|
}
|
||||||
@@ -237,14 +361,6 @@
|
|||||||
content: "\e62c";
|
content: "\e62c";
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-stopcircle-fill::before {
|
|
||||||
content: "\e7cc";
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon-playcircle-fill::before {
|
|
||||||
content: "\e7cd";
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon-SpeakerSlash::before {
|
.icon-SpeakerSlash::before {
|
||||||
content: "\e661";
|
content: "\e661";
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -5,6 +5,223 @@
|
|||||||
"css_prefix_text": "icon-",
|
"css_prefix_text": "icon-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "44685190",
|
||||||
|
"name": "language",
|
||||||
|
"font_class": "language",
|
||||||
|
"unicode": "e679",
|
||||||
|
"unicode_decimal": 59001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44685189",
|
||||||
|
"name": "help",
|
||||||
|
"font_class": "help",
|
||||||
|
"unicode": "e67a",
|
||||||
|
"unicode_decimal": 59002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684306",
|
||||||
|
"name": "key-filled",
|
||||||
|
"font_class": "key-filled",
|
||||||
|
"unicode": "e67b",
|
||||||
|
"unicode_decimal": 59003
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684302",
|
||||||
|
"name": "key",
|
||||||
|
"font_class": "key",
|
||||||
|
"unicode": "e67d",
|
||||||
|
"unicode_decimal": 59005
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684304",
|
||||||
|
"name": "resources",
|
||||||
|
"font_class": "resources",
|
||||||
|
"unicode": "e67e",
|
||||||
|
"unicode_decimal": 59006
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684305",
|
||||||
|
"name": "users",
|
||||||
|
"font_class": "users",
|
||||||
|
"unicode": "e67f",
|
||||||
|
"unicode_decimal": 59007
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684303",
|
||||||
|
"name": "resources-filled",
|
||||||
|
"font_class": "resources-filled",
|
||||||
|
"unicode": "e680",
|
||||||
|
"unicode_decimal": 59008
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684301",
|
||||||
|
"name": "users-filled",
|
||||||
|
"font_class": "users-filled",
|
||||||
|
"unicode": "e681",
|
||||||
|
"unicode_decimal": 59009
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684150",
|
||||||
|
"name": "model",
|
||||||
|
"font_class": "model",
|
||||||
|
"unicode": "e676",
|
||||||
|
"unicode_decimal": 58998
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684149",
|
||||||
|
"name": "model-filled",
|
||||||
|
"font_class": "model-filled",
|
||||||
|
"unicode": "e678",
|
||||||
|
"unicode_decimal": 59000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684090",
|
||||||
|
"name": "layers-filled",
|
||||||
|
"font_class": "layers-filled",
|
||||||
|
"unicode": "e671",
|
||||||
|
"unicode_decimal": 58993
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684091",
|
||||||
|
"name": "layers",
|
||||||
|
"font_class": "layers",
|
||||||
|
"unicode": "e673",
|
||||||
|
"unicode_decimal": 58995
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684086",
|
||||||
|
"name": "experiment",
|
||||||
|
"font_class": "experiment",
|
||||||
|
"unicode": "e674",
|
||||||
|
"unicode_decimal": 58996
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684085",
|
||||||
|
"name": "experiment",
|
||||||
|
"font_class": "experiment-filled",
|
||||||
|
"unicode": "e675",
|
||||||
|
"unicode_decimal": 58997
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684021",
|
||||||
|
"name": "dashboard",
|
||||||
|
"font_class": "dashboard",
|
||||||
|
"unicode": "e66d",
|
||||||
|
"unicode_decimal": 58989
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44684020",
|
||||||
|
"name": "dashboard-filled",
|
||||||
|
"font_class": "dashboard-filled",
|
||||||
|
"unicode": "e66e",
|
||||||
|
"unicode_decimal": 58990
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "40068272",
|
||||||
|
"name": "expand-left",
|
||||||
|
"font_class": "expand-left",
|
||||||
|
"unicode": "ea48",
|
||||||
|
"unicode_decimal": 59976
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "40068278",
|
||||||
|
"name": "expand-right",
|
||||||
|
"font_class": "expand-right",
|
||||||
|
"unicode": "ea49",
|
||||||
|
"unicode_decimal": 59977
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "1350497",
|
||||||
|
"name": "sq-users",
|
||||||
|
"font_class": "users-fill",
|
||||||
|
"unicode": "e677",
|
||||||
|
"unicode_decimal": 58999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "13691715",
|
||||||
|
"name": "layers",
|
||||||
|
"font_class": "layers-fill",
|
||||||
|
"unicode": "e89d",
|
||||||
|
"unicode_decimal": 59549
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "14267903",
|
||||||
|
"name": "key-skeleton-alt",
|
||||||
|
"font_class": "key-fill",
|
||||||
|
"unicode": "e80e",
|
||||||
|
"unicode_decimal": 59406
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "14341823",
|
||||||
|
"name": "cloud-server-solid",
|
||||||
|
"font_class": "server-fill",
|
||||||
|
"unicode": "e7a3",
|
||||||
|
"unicode_decimal": 59299
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "40764011",
|
||||||
|
"name": "icon-model-selected",
|
||||||
|
"font_class": "model-fill",
|
||||||
|
"unicode": "e7b7",
|
||||||
|
"unicode_decimal": 59319
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44668359",
|
||||||
|
"name": "left_panel_close_36dp_1F1F1F_FILL0_wght400_GRAD0_o",
|
||||||
|
"font_class": "left_panel_close",
|
||||||
|
"unicode": "e668",
|
||||||
|
"unicode_decimal": 58984
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44668360",
|
||||||
|
"name": "left_panel_open_36dp_1F1F1F_FILL0_wght400_GRAD0_op",
|
||||||
|
"font_class": "left_panel_open",
|
||||||
|
"unicode": "e669",
|
||||||
|
"unicode_decimal": 58985
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44650419",
|
||||||
|
"name": "play circle-fill",
|
||||||
|
"font_class": "playcircle-fill",
|
||||||
|
"unicode": "e665",
|
||||||
|
"unicode_decimal": 58981
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "44650418",
|
||||||
|
"name": "stop circle-fill",
|
||||||
|
"font_class": "stopcircle-fill",
|
||||||
|
"unicode": "e666",
|
||||||
|
"unicode_decimal": 58982
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "8592899",
|
||||||
|
"name": "play-speed",
|
||||||
|
"font_class": "play-speed",
|
||||||
|
"unicode": "e856",
|
||||||
|
"unicode_decimal": 59478
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "10941162",
|
||||||
|
"name": "more",
|
||||||
|
"font_class": "more",
|
||||||
|
"unicode": "e62e",
|
||||||
|
"unicode_decimal": 58926
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "703373",
|
||||||
|
"name": "play",
|
||||||
|
"font_class": "play",
|
||||||
|
"unicode": "e9f9",
|
||||||
|
"unicode_decimal": 59897
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "736882",
|
||||||
|
"name": "pause",
|
||||||
|
"font_class": "pause",
|
||||||
|
"unicode": "e713",
|
||||||
|
"unicode_decimal": 59155
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "44028047",
|
"icon_id": "44028047",
|
||||||
"name": "dark_theme",
|
"name": "dark_theme",
|
||||||
@@ -397,20 +614,6 @@
|
|||||||
"unicode": "e62c",
|
"unicode": "e62c",
|
||||||
"unicode_decimal": 58924
|
"unicode_decimal": 58924
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"icon_id": "6151140",
|
|
||||||
"name": "stop circle-fill",
|
|
||||||
"font_class": "stopcircle-fill",
|
|
||||||
"unicode": "e7cc",
|
|
||||||
"unicode_decimal": 59340
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon_id": "6151141",
|
|
||||||
"name": "play circle-fill",
|
|
||||||
"font_class": "playcircle-fill",
|
|
||||||
"unicode": "e7cd",
|
|
||||||
"unicode_decimal": 59341
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"icon_id": "23563264",
|
"icon_id": "23563264",
|
||||||
"name": "SpeakerSlash",
|
"name": "SpeakerSlash",
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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: '//at.alicdn.com/t/c/font_4613488_w50kuuord8o.js'
|
scriptUrl: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
export default IconFont;
|
export default IconFont;
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
import { useIntl } from '@umijs/max';
|
|
||||||
import { Modal, message, type ModalFuncProps } from 'antd';
|
|
||||||
import { useRef } from 'react';
|
|
||||||
|
|
||||||
export default function useDeleteModal() {
|
|
||||||
const intl = useIntl();
|
|
||||||
const modalRef = useRef<any>();
|
|
||||||
const showDeleteModal = (config: ModalFuncProps = {}) => {
|
|
||||||
modalRef.current = Modal.confirm({
|
|
||||||
...config,
|
|
||||||
okText: intl.formatMessage({
|
|
||||||
id: 'common.button.delete'
|
|
||||||
}),
|
|
||||||
onCancel: () => {
|
|
||||||
config.onCancel?.();
|
|
||||||
modalRef.current.destroy?.();
|
|
||||||
},
|
|
||||||
onOk: async () => {
|
|
||||||
await config.onOk?.();
|
|
||||||
message.success(intl.formatMessage({ id: 'common.message.success' }));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
return { showDeleteModal };
|
|
||||||
}
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import useDeleteModel from '@/components/delete-modal';
|
||||||
import useSetChunkRequest from '@/hooks/use-chunk-request';
|
import useSetChunkRequest from '@/hooks/use-chunk-request';
|
||||||
import useTableRowSelection from '@/hooks/use-table-row-selection';
|
import useTableRowSelection from '@/hooks/use-table-row-selection';
|
||||||
import useTableSort from '@/hooks/use-table-sort';
|
import useTableSort from '@/hooks/use-table-sort';
|
||||||
@@ -55,7 +56,7 @@ export default function useTableFetch<ListItem>(
|
|||||||
perPage: 10,
|
perPage: 10,
|
||||||
search: ''
|
search: ''
|
||||||
});
|
});
|
||||||
|
const { DeleteModal, show, hide, configuration } = useDeleteModel();
|
||||||
const { setChunkRequest } = useSetChunkRequest();
|
const { setChunkRequest } = useSetChunkRequest();
|
||||||
const { updateChunkedList, cacheDataListRef } = useUpdateChunkedList({
|
const { updateChunkedList, cacheDataListRef } = useUpdateChunkedList({
|
||||||
events: ['UPDATE', 'DELETE', 'INSERT'],
|
events: ['UPDATE', 'DELETE', 'INSERT'],
|
||||||
@@ -203,7 +204,7 @@ export default function useTableFetch<ListItem>(
|
|||||||
row: ListItem & { name: string; id: number },
|
row: ListItem & { name: string; id: number },
|
||||||
options?: any
|
options?: any
|
||||||
) => {
|
) => {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: contentForDelete,
|
content: contentForDelete,
|
||||||
operation: 'common.delete.single.confirm',
|
operation: 'common.delete.single.confirm',
|
||||||
name: row.name,
|
name: row.name,
|
||||||
@@ -211,7 +212,7 @@ export default function useTableFetch<ListItem>(
|
|||||||
async onOk() {
|
async onOk() {
|
||||||
console.log('OK');
|
console.log('OK');
|
||||||
await deleteAPI?.(row.id, {
|
await deleteAPI?.(row.id, {
|
||||||
...modalRef.current?.configuration
|
...configuration
|
||||||
});
|
});
|
||||||
fetchData();
|
fetchData();
|
||||||
}
|
}
|
||||||
@@ -219,7 +220,7 @@ export default function useTableFetch<ListItem>(
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleDeleteBatch = (options = {}) => {
|
const handleDeleteBatch = (options = {}) => {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: contentForDelete,
|
content: contentForDelete,
|
||||||
operation: 'common.delete.confirm',
|
operation: 'common.delete.confirm',
|
||||||
selection: true,
|
selection: true,
|
||||||
@@ -231,7 +232,7 @@ export default function useTableFetch<ListItem>(
|
|||||||
rowSelection.selectedRowKeys,
|
rowSelection.selectedRowKeys,
|
||||||
async (id: any) => {
|
async (id: any) => {
|
||||||
await deleteAPI(id, {
|
await deleteAPI(id, {
|
||||||
...modalRef.current?.configuration
|
configuration
|
||||||
});
|
});
|
||||||
successIds.push(id);
|
successIds.push(id);
|
||||||
}
|
}
|
||||||
@@ -274,6 +275,7 @@ export default function useTableFetch<ListItem>(
|
|||||||
sortOrder,
|
sortOrder,
|
||||||
queryParams,
|
queryParams,
|
||||||
modalRef,
|
modalRef,
|
||||||
|
DeleteModal,
|
||||||
setQueryParams,
|
setQueryParams,
|
||||||
handleDelete,
|
handleDelete,
|
||||||
handleDeleteBatch,
|
handleDeleteBatch,
|
||||||
|
|||||||
@@ -194,13 +194,13 @@ export default {
|
|||||||
'common.delete.confirm':
|
'common.delete.confirm':
|
||||||
'Are you sure you want to delete the selected {type}?',
|
'Are you sure you want to delete the selected {type}?',
|
||||||
'common.delete.single.confirm':
|
'common.delete.single.confirm':
|
||||||
'Are you sure you want to delete <span style="font-size: 13px;font-weight: 700">{name}</span>?',
|
'Are you sure you want to delete? \n <span style="font-size: 13px;font-weight: 700">{name}</span>',
|
||||||
'common.stop.confirm': 'Are you sure you want to stop the selected {type}?',
|
'common.stop.confirm': 'Are you sure you want to stop the selected {type}?',
|
||||||
'common.stop.single.confirm':
|
'common.stop.single.confirm':
|
||||||
'Are you sure you want to stop <span style="font-size: 13px;font-weight: 700">{name}</span>?',
|
'Are you sure you want to stop? \n <span style="font-size: 13px;font-weight: 700">{name}</span>',
|
||||||
'common.start.confirm': 'Are you sure you want to start the selected {type}?',
|
'common.start.confirm': 'Are you sure you want to start the selected {type}?',
|
||||||
'common.start.single.confirm':
|
'common.start.single.confirm':
|
||||||
'Are you sure you want to start <span style="font-size: 13px;font-weight: 700">{name}</span>?',
|
'Are you sure you want to start? \n <span style="font-size: 13px;font-weight: 700">{name}</span>',
|
||||||
'common.filter.name': 'Filter by name',
|
'common.filter.name': 'Filter by name',
|
||||||
'common.form.password': 'Password',
|
'common.form.password': 'Password',
|
||||||
'common.form.username': 'Username',
|
'common.form.username': 'Username',
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export default {
|
|||||||
'Waiting for the download to complete...',
|
'Waiting for the download to complete...',
|
||||||
'resources.filter.worker': 'Filter by worker',
|
'resources.filter.worker': 'Filter by worker',
|
||||||
'resources.filter.source': 'Filter by Source',
|
'resources.filter.source': 'Filter by Source',
|
||||||
'resources.modelfiles.delete.tips': 'Also delete the file from disk!',
|
'resources.modelfiles.delete.tips': 'Also delete the file from disk',
|
||||||
'resources.modelfiles.copy.tips': 'Copy Full Path',
|
'resources.modelfiles.copy.tips': 'Copy Full Path',
|
||||||
'resources.filter.path': 'Filter by path'
|
'resources.filter.path': 'Filter by path'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export default {
|
|||||||
'ダウンロード完了を待っています...',
|
'ダウンロード完了を待っています...',
|
||||||
'resources.filter.worker': 'ワーカーでフィルタ',
|
'resources.filter.worker': 'ワーカーでフィルタ',
|
||||||
'resources.filter.source': 'ソースでフィルタ',
|
'resources.filter.source': 'ソースでフィルタ',
|
||||||
'resources.modelfiles.delete.tips': 'ディスクからファイルも削除します!',
|
'resources.modelfiles.delete.tips': 'ディスクからファイルも削除します',
|
||||||
'resources.modelfiles.copy.tips': 'フルパスをコピー',
|
'resources.modelfiles.copy.tips': 'フルパスをコピー',
|
||||||
'resources.filter.path': 'パスでフィルタ'
|
'resources.filter.path': 'パスでフィルタ'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ export default {
|
|||||||
'resources.modelfiles.storagePath.holder': 'Ожидание завершения загрузки...',
|
'resources.modelfiles.storagePath.holder': 'Ожидание завершения загрузки...',
|
||||||
'resources.filter.worker': 'Фильтровать по узлу',
|
'resources.filter.worker': 'Фильтровать по узлу',
|
||||||
'resources.filter.source': 'Фильтровать по источнику',
|
'resources.filter.source': 'Фильтровать по источнику',
|
||||||
'resources.modelfiles.delete.tips': 'Также удалить файл с диска!',
|
'resources.modelfiles.delete.tips': 'Также удалить файл с диска',
|
||||||
'resources.modelfiles.copy.tips': 'Скопировать полный путь',
|
'resources.modelfiles.copy.tips': 'Скопировать полный путь',
|
||||||
'resources.filter.path': 'Фильтрация по пути'
|
'resources.filter.path': 'Фильтрация по пути'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -185,15 +185,15 @@ export default {
|
|||||||
'common.table.user': '用户',
|
'common.table.user': '用户',
|
||||||
'common.settings.instructions': '操作指引',
|
'common.settings.instructions': '操作指引',
|
||||||
'common.settings.language': '语言',
|
'common.settings.language': '语言',
|
||||||
'common.delete.confirm': '删除选中的{type},确定吗?',
|
'common.delete.confirm': '确定删除选中的{type}吗?',
|
||||||
'common.delete.single.confirm':
|
'common.delete.single.confirm':
|
||||||
'删除 <span style="font-size: 13px;font-weight: 700">{name}</span>,确定吗?',
|
'确定删除以下内容?\n <span style="font-size: 13px;font-weight: 700">{name}</span>',
|
||||||
'common.stop.confirm': '停止选中的{type},确定吗?',
|
'common.stop.confirm': '确定停止选中的{type}吗?',
|
||||||
'common.stop.single.confirm':
|
'common.stop.single.confirm':
|
||||||
'停止 <span style="font-size: 13px;font-weight: 700">{name}</span>,确定吗?',
|
'确定停止 <span style="font-size: 13px;font-weight: 700">{name}?</span>',
|
||||||
'common.start.confirm': '启动选中的{type},确定吗?',
|
'common.start.confirm': '确定启动选中的{type}吗?',
|
||||||
'common.start.single.confirm':
|
'common.start.single.confirm':
|
||||||
'启动 <span style="font-size: 13px;font-weight: 700">{name}</span>,确定吗?',
|
'确定启动 <span style="font-size: 13px;font-weight: 700">{name}?</span>',
|
||||||
'common.filter.name': '名称查询',
|
'common.filter.name': '名称查询',
|
||||||
'common.form.password': '密码',
|
'common.form.password': '密码',
|
||||||
'common.form.username': '用户名',
|
'common.form.username': '用户名',
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ export default {
|
|||||||
'resources.modelfiles.storagePath.holder': '等待下载完成...',
|
'resources.modelfiles.storagePath.holder': '等待下载完成...',
|
||||||
'resources.filter.worker': '按 Worker 筛选',
|
'resources.filter.worker': '按 Worker 筛选',
|
||||||
'resources.filter.source': '按来源筛选',
|
'resources.filter.source': '按来源筛选',
|
||||||
'resources.modelfiles.delete.tips': '同时从磁盘删除文件!',
|
'resources.modelfiles.delete.tips': '同时从磁盘删除文件',
|
||||||
'resources.modelfiles.copy.tips': '复制完整路径',
|
'resources.modelfiles.copy.tips': '复制完整路径',
|
||||||
'resources.filter.path': '路径查询'
|
'resources.filter.path': '路径查询'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import AutoTooltip from '@/components/auto-tooltip';
|
import AutoTooltip from '@/components/auto-tooltip';
|
||||||
import DeleteModal from '@/components/delete-modal';
|
|
||||||
import PageTools from '@/components/page-tools';
|
import PageTools from '@/components/page-tools';
|
||||||
import { PageAction } from '@/config';
|
import { PageAction } from '@/config';
|
||||||
import HotKeys from '@/config/hotkeys';
|
import HotKeys from '@/config/hotkeys';
|
||||||
@@ -32,7 +31,7 @@ const APIKeys: React.FC = () => {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
queryParams,
|
queryParams,
|
||||||
sortOrder,
|
sortOrder,
|
||||||
modalRef,
|
DeleteModal,
|
||||||
handleDelete,
|
handleDelete,
|
||||||
handleDeleteBatch,
|
handleDeleteBatch,
|
||||||
fetchData,
|
fetchData,
|
||||||
@@ -261,7 +260,7 @@ const APIKeys: React.FC = () => {
|
|||||||
onCancel={handleModalCancel}
|
onCancel={handleModalCancel}
|
||||||
onOk={handleModalOk}
|
onOk={handleModalOk}
|
||||||
></AddAPIKeyModal>
|
></AddAPIKeyModal>
|
||||||
<DeleteModal ref={modalRef}></DeleteModal>
|
<DeleteModal></DeleteModal>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -471,10 +471,24 @@ const InstanceItem: React.FC<InstanceItemProps> = ({
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const renderDistributionInfo = (severList: any[]) => {
|
const renderDistributionInfo = (distributed_servers: Record<string, any>) => {
|
||||||
|
const { rpc_servers, ray_actors, subordinate_workers } =
|
||||||
|
distributed_servers;
|
||||||
|
|
||||||
|
let severList: any[] = [];
|
||||||
|
|
||||||
|
if (rpc_servers?.length > 0) {
|
||||||
|
severList = rpc_servers;
|
||||||
|
} else if (ray_actors?.length > 0) {
|
||||||
|
severList = ray_actors;
|
||||||
|
} else if (subordinate_workers?.length > 0) {
|
||||||
|
severList = subordinate_workers;
|
||||||
|
}
|
||||||
|
|
||||||
if (!severList.length) {
|
if (!severList.length) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TooltipOverlayScroller
|
<TooltipOverlayScroller
|
||||||
toolTipProps={{
|
toolTipProps={{
|
||||||
@@ -612,12 +626,7 @@ const InstanceItem: React.FC<InstanceItemProps> = ({
|
|||||||
className="flex align-center"
|
className="flex align-center"
|
||||||
>
|
>
|
||||||
{renderOffloadInfo}
|
{renderOffloadInfo}
|
||||||
{renderDistributionInfo(
|
{renderDistributionInfo(instanceData.distributed_servers || {})}
|
||||||
instanceData.distributed_servers?.rpc_servers ||
|
|
||||||
instanceData.distributed_servers?.ray_actors ||
|
|
||||||
instanceData.distributed_servers?.subordinate_workers ||
|
|
||||||
[]
|
|
||||||
)}
|
|
||||||
</span>
|
</span>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={4}>
|
<Col span={4}>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { modelsExpandKeysAtom } from '@/atoms/models';
|
import { modelsExpandKeysAtom } from '@/atoms/models';
|
||||||
import AutoTooltip from '@/components/auto-tooltip';
|
import AutoTooltip from '@/components/auto-tooltip';
|
||||||
import DeleteModal from '@/components/delete-modal';
|
import useDeleteModel from '@/components/delete-modal';
|
||||||
import DropDownActions from '@/components/drop-down-actions';
|
import DropDownActions from '@/components/drop-down-actions';
|
||||||
import DropdownButtons from '@/components/drop-down-buttons';
|
import DropdownButtons from '@/components/drop-down-buttons';
|
||||||
import { PageSize } from '@/components/logs-viewer/config';
|
import { PageSize } from '@/components/logs-viewer/config';
|
||||||
@@ -146,6 +146,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
loadend,
|
loadend,
|
||||||
total
|
total
|
||||||
}) => {
|
}) => {
|
||||||
|
const { DeleteModal, show } = useDeleteModel();
|
||||||
const { getGPUList, generateFormValues, gpuDeviceList } =
|
const { getGPUList, generateFormValues, gpuDeviceList } =
|
||||||
useGenerateFormEditInitialValues();
|
useGenerateFormEditInitialValues();
|
||||||
const { saveScrollHeight, restoreScrollHeight } = useBodyScroll();
|
const { saveScrollHeight, restoreScrollHeight } = useBodyScroll();
|
||||||
@@ -327,7 +328,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
}, [onCancelViewLogs]);
|
}, [onCancelViewLogs]);
|
||||||
|
|
||||||
const handleDelete = async (row: any) => {
|
const handleDelete = async (row: any) => {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: 'models.table.models',
|
content: 'models.table.models',
|
||||||
operation: 'common.delete.single.confirm',
|
operation: 'common.delete.single.confirm',
|
||||||
name: row.name,
|
name: row.name,
|
||||||
@@ -342,7 +343,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleDeleteBatch = () => {
|
const handleDeleteBatch = () => {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: 'models.table.models',
|
content: 'models.table.models',
|
||||||
operation: 'common.delete.confirm',
|
operation: 'common.delete.confirm',
|
||||||
selection: true,
|
selection: true,
|
||||||
@@ -406,7 +407,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
);
|
);
|
||||||
const handleDeleteInstace = useCallback(
|
const handleDeleteInstace = useCallback(
|
||||||
(row: any) => {
|
(row: any) => {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: 'models.instances',
|
content: 'models.instances',
|
||||||
okText: 'common.button.delrecreate',
|
okText: 'common.button.delrecreate',
|
||||||
operation: 'common.delete.single.confirm',
|
operation: 'common.delete.single.confirm',
|
||||||
@@ -487,7 +488,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (val === 'stop') {
|
if (val === 'stop') {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: 'models.instances',
|
content: 'models.instances',
|
||||||
title: 'common.title.stop.confirm',
|
title: 'common.title.stop.confirm',
|
||||||
okText: 'common.button.stop',
|
okText: 'common.button.stop',
|
||||||
@@ -562,7 +563,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleStartBatch = async () => {
|
const handleStartBatch = async () => {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: 'models.table.models',
|
content: 'models.table.models',
|
||||||
title: 'common.title.start.confirm',
|
title: 'common.title.start.confirm',
|
||||||
okText: 'common.button.start',
|
okText: 'common.button.start',
|
||||||
@@ -575,7 +576,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleStopBatch = async () => {
|
const handleStopBatch = async () => {
|
||||||
modalRef.current.show({
|
show({
|
||||||
content: 'models.table.models',
|
content: 'models.table.models',
|
||||||
title: 'common.title.stop.confirm',
|
title: 'common.title.stop.confirm',
|
||||||
okText: 'common.button.stop',
|
okText: 'common.button.stop',
|
||||||
@@ -884,7 +885,7 @@ const Models: React.FC<ModelsProps> = ({
|
|||||||
open={openLogModal}
|
open={openLogModal}
|
||||||
onCancel={handleLogModalCancel}
|
onCancel={handleLogModalCancel}
|
||||||
></ViewLogsModal>
|
></ViewLogsModal>
|
||||||
<DeleteModal ref={modalRef}></DeleteModal>
|
<DeleteModal></DeleteModal>
|
||||||
<APIAccessInfoModal
|
<APIAccessInfoModal
|
||||||
open={apiAccessInfo.show}
|
open={apiAccessInfo.show}
|
||||||
data={apiAccessInfo.data}
|
data={apiAccessInfo.data}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { modelsExpandKeysAtom } from '@/atoms/models';
|
import { modelsExpandKeysAtom } from '@/atoms/models';
|
||||||
import AutoTooltip from '@/components/auto-tooltip';
|
import AutoTooltip from '@/components/auto-tooltip';
|
||||||
import DeleteModal from '@/components/delete-modal';
|
|
||||||
import DropdownButtons from '@/components/drop-down-buttons';
|
import DropdownButtons from '@/components/drop-down-buttons';
|
||||||
import { TooltipOverlayScroller } from '@/components/overlay-scroller';
|
import { TooltipOverlayScroller } from '@/components/overlay-scroller';
|
||||||
import { FilterBar } from '@/components/page-tools';
|
import { FilterBar } from '@/components/page-tools';
|
||||||
@@ -294,7 +293,7 @@ const ModelFiles = () => {
|
|||||||
dataSource,
|
dataSource,
|
||||||
rowSelection,
|
rowSelection,
|
||||||
queryParams,
|
queryParams,
|
||||||
modalRef,
|
DeleteModal,
|
||||||
fetchData,
|
fetchData,
|
||||||
handleDelete,
|
handleDelete,
|
||||||
handleDeleteBatch,
|
handleDeleteBatch,
|
||||||
@@ -683,7 +682,7 @@ const ModelFiles = () => {
|
|||||||
}}
|
}}
|
||||||
></Table>
|
></Table>
|
||||||
</ConfigProvider>
|
</ConfigProvider>
|
||||||
<DeleteModal ref={modalRef}></DeleteModal>
|
<DeleteModal></DeleteModal>
|
||||||
<DownloadModal
|
<DownloadModal
|
||||||
onCancel={handleDownloadCancel}
|
onCancel={handleDownloadCancel}
|
||||||
onOk={handleDownload}
|
onOk={handleDownload}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import AutoTooltip from '@/components/auto-tooltip';
|
import AutoTooltip from '@/components/auto-tooltip';
|
||||||
import DeleteModal from '@/components/delete-modal';
|
|
||||||
import DropdownButtons from '@/components/drop-down-buttons';
|
import DropdownButtons from '@/components/drop-down-buttons';
|
||||||
import { FilterBar } from '@/components/page-tools';
|
import { FilterBar } from '@/components/page-tools';
|
||||||
import ProgressBar from '@/components/progress-bar';
|
import ProgressBar from '@/components/progress-bar';
|
||||||
@@ -94,7 +93,7 @@ const Workers: React.FC = () => {
|
|||||||
dataSource,
|
dataSource,
|
||||||
rowSelection,
|
rowSelection,
|
||||||
queryParams,
|
queryParams,
|
||||||
modalRef,
|
DeleteModal,
|
||||||
handleDelete,
|
handleDelete,
|
||||||
handleDeleteBatch,
|
handleDeleteBatch,
|
||||||
fetchData,
|
fetchData,
|
||||||
@@ -447,7 +446,7 @@ const Workers: React.FC = () => {
|
|||||||
/>
|
/>
|
||||||
</Table>
|
</Table>
|
||||||
</ConfigProvider>
|
</ConfigProvider>
|
||||||
<DeleteModal ref={modalRef}></DeleteModal>
|
<DeleteModal></DeleteModal>
|
||||||
<AddWorker open={open} onCancel={() => setOpen(false)}></AddWorker>
|
<AddWorker open={open} onCancel={() => setOpen(false)}></AddWorker>
|
||||||
<UpdateLabels
|
<UpdateLabels
|
||||||
open={updateLabelsData.open}
|
open={updateLabelsData.open}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import AutoTooltip from '@/components/auto-tooltip';
|
import AutoTooltip from '@/components/auto-tooltip';
|
||||||
import DeleteModal from '@/components/delete-modal';
|
|
||||||
import DropdownButtons from '@/components/drop-down-buttons';
|
import DropdownButtons from '@/components/drop-down-buttons';
|
||||||
import PageTools from '@/components/page-tools';
|
import PageTools from '@/components/page-tools';
|
||||||
import { PageAction } from '@/config';
|
import { PageAction } from '@/config';
|
||||||
@@ -55,7 +54,7 @@ const Users: React.FC = () => {
|
|||||||
rowSelection,
|
rowSelection,
|
||||||
queryParams,
|
queryParams,
|
||||||
sortOrder,
|
sortOrder,
|
||||||
modalRef,
|
DeleteModal,
|
||||||
handleDelete,
|
handleDelete,
|
||||||
handleDeleteBatch,
|
handleDeleteBatch,
|
||||||
fetchData,
|
fetchData,
|
||||||
@@ -321,7 +320,7 @@ const Users: React.FC = () => {
|
|||||||
onCancel={handleModalCancel}
|
onCancel={handleModalCancel}
|
||||||
onOk={handleModalOk}
|
onOk={handleModalOk}
|
||||||
></AddModal>
|
></AddModal>
|
||||||
<DeleteModal ref={modalRef}></DeleteModal>
|
<DeleteModal></DeleteModal>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user