diff --git a/.prettierignore b/.prettierignore index 136fd4c3..5a5b9f53 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,4 +2,8 @@ node_modules .umi .umi-production public/static/*.js -public/static/*.css \ No newline at end of file +public/static/*.css +src/components/icon-font/iconfont/iconfont.js +src/components/icon-font/iconfont/*.css + + diff --git a/src/components/auto-tooltip/index.tsx b/src/components/auto-tooltip/index.tsx index c6e4f35f..c3e15230 100644 --- a/src/components/auto-tooltip/index.tsx +++ b/src/components/auto-tooltip/index.tsx @@ -104,7 +104,7 @@ const AutoTooltip: React.FC = ({ {children} ) : ( - '' + false ) } {...tooltipProps} diff --git a/src/components/seal-table/components/row-prefix.tsx b/src/components/seal-table/components/row-prefix.tsx index ccf8f9c1..16afbefd 100644 --- a/src/components/seal-table/components/row-prefix.tsx +++ b/src/components/seal-table/components/row-prefix.tsx @@ -1,13 +1,26 @@ import IconFont from '@/components/icon-font'; import { Button, Checkbox } from 'antd'; +import classNames from 'classnames'; import _ from 'lodash'; -import React from 'react'; +import React, { useMemo } from 'react'; +import styled from 'styled-components'; + +const ButtonWrapper = styled.div` + width: 30px; + margin-right: 5px; + &.disable-expand { + .ant-btn { + display: none; + } + } +`; interface RowPrefixProps { expandable?: boolean | React.ReactNode; enableSelection?: boolean; expanded?: boolean; checked?: boolean; + disableExpand?: boolean; handleRowExpand?: () => void; handleSelectChange?: (e: any) => void; } @@ -18,26 +31,33 @@ const RowPrefix: React.FC = (props) => { enableSelection, expanded, checked, + disableExpand, handleRowExpand, handleSelectChange } = props; + const isExpanded = useMemo(() => { + return expanded; + }, [expanded]); + if (expandable && enableSelection) { return (
- + {_.isBoolean(expandable) ? ( ) : ( expandable )} - +
); @@ -45,17 +65,26 @@ const RowPrefix: React.FC = (props) => { if (expandable) { return (
- {_.isBoolean(expandable) ? ( - - ) : ( - expandable - )} + + {_.isBoolean(expandable) ? ( + + ) : ( + expandable + )} +
); } diff --git a/src/components/seal-table/components/table-row.tsx b/src/components/seal-table/components/table-row.tsx index bb73a517..003fb5e7 100644 --- a/src/components/seal-table/components/table-row.tsx +++ b/src/components/seal-table/components/table-row.tsx @@ -42,6 +42,7 @@ const TableRow: React.FC< const tableContext: any = React.useContext<{ allChildren?: any[]; allSubChildren?: any[]; + setDisableExpand?: (record: any) => boolean; }>(TableContext); const { setChunkRequest } = useSetChunkRequest(); const [childrenData, setChildrenData] = useState([]); @@ -206,6 +207,10 @@ const TableRow: React.FC< } }; + const disableExpand = useMemo(() => { + return tableContext.setDisableExpand?.(record); + }, [tableContext.setDisableExpand, record]); + useEffect(() => { const handleVisibilityChange = async () => { if (document.visibilityState === 'hidden') { @@ -249,6 +254,7 @@ const TableRow: React.FC< checked={checked} handleRowExpand={handleRowExpand} handleSelectChange={handleSelectChange} + disableExpand={disableExpand} > {columns?.map((columnProps) => { diff --git a/src/global.less b/src/global.less index 5ca8d3b6..223424df 100644 --- a/src/global.less +++ b/src/global.less @@ -828,7 +828,7 @@ body { .ant-tooltip-content { .ant-tooltip-inner { - width: max-content; + width: fit-content; max-width: 300px; .text-tertiary { diff --git a/src/locales/en-US/models.ts b/src/locales/en-US/models.ts index 34cde9c0..8adf2936 100644 --- a/src/locales/en-US/models.ts +++ b/src/locales/en-US/models.ts @@ -64,7 +64,8 @@ export default { 'Non-GGUF models use vox-box for audio and vLLM(x86 Linux only) for others.', 'models.search.voxbox.tips': 'To deploy an audio model, uncheck the checkbox.', - 'models.form.ollamalink': 'Find More in Ollama Library', + 'models.form.ollamalink': + 'Find More in Ollama Library.', 'models.form.backend_parameters.llamabox.placeholder': 'e.g., --ctx-size=8192', 'models.form.backend_parameters.vllm.placeholder': diff --git a/src/locales/ja-JP/models.ts b/src/locales/ja-JP/models.ts index f40762e7..a09026b4 100644 --- a/src/locales/ja-JP/models.ts +++ b/src/locales/ja-JP/models.ts @@ -64,7 +64,8 @@ export default { '非GGUFモデルは、音声にはvox-boxを、その他にはvLLM(x86 Linuxのみ)を使用します。', 'models.search.voxbox.tips': '音声モデルをデプロイするには、GGUFチェックボックスをオフにしてください。', - 'models.form.ollamalink': 'Ollamaライブラリでさらに探す', + 'models.form.ollamalink': + 'Ollamaライブラリでさらに探す', 'models.form.backend_parameters.llamabox.placeholder': '例: --ctx-size=8192', 'models.form.backend_parameters.vllm.placeholder': '例: --max-model-len=8192', 'models.form.backend_parameters.vllm.tips': '詳細な{backend}パラメータ情報', diff --git a/src/locales/ru-RU/models.ts b/src/locales/ru-RU/models.ts index 40a8846c..735f7265 100644 --- a/src/locales/ru-RU/models.ts +++ b/src/locales/ru-RU/models.ts @@ -64,7 +64,8 @@ export default { 'Не-GGUF модели используют vox-box для аудио и vLLM (только x86 Linux) для остальных.', 'models.search.voxbox.tips': 'Для развертывания аудиомодели снимите отметку GGUF.', - 'models.form.ollamalink': 'Больше моделей в библиотеке Ollama', + 'models.form.ollamalink': + 'Больше моделей в библиотеке Ollama', 'models.form.backend_parameters.llamabox.placeholder': 'например: --ctx-size=8192', 'models.form.backend_parameters.vllm.placeholder': diff --git a/src/locales/zh-CN/models.ts b/src/locales/zh-CN/models.ts index 52401e1b..b6de1acc 100644 --- a/src/locales/zh-CN/models.ts +++ b/src/locales/zh-CN/models.ts @@ -64,7 +64,8 @@ export default { 'models.search.vllm.tips': ' 非 GGUF 的语音模型用 vox-box,其它非 GGUF 的模型用 vLLM(仅支持 x86 Linux)。', 'models.search.voxbox.tips': '若需部署语音模型取消勾选。', - 'models.form.ollamalink': '在 Ollama Library 中查找', + 'models.form.ollamalink': + '在 Ollama Library 中查找', 'models.form.backend_parameters.llamabox.placeholder': '例如,--ctx-size=8192', 'models.form.backend_parameters.vllm.placeholder': diff --git a/src/pages/llmodels/forms/ollama_library.tsx b/src/pages/llmodels/forms/ollama_library.tsx index 1e74f958..b8e3a46d 100644 --- a/src/pages/llmodels/forms/ollama_library.tsx +++ b/src/pages/llmodels/forms/ollama_library.tsx @@ -1,8 +1,7 @@ -import IconFont from '@/components/icon-font'; import SealAutoComplete from '@/components/seal-form/auto-complete'; import useAppUtils from '@/hooks/use-app-utils'; import { useIntl } from '@umijs/max'; -import { Form, Typography } from 'antd'; +import { Form } from 'antd'; import React from 'react'; import { modelSourceMap, ollamaModelOptions } from '../config'; import { useFormContext, useFormInnerContext } from '../config/form-context'; @@ -50,21 +49,11 @@ const OllamaForm: React.FC = () => { onSelect={handleModelNameChange} onBlur={handleOnBlur} description={ - - - {intl.formatMessage({ id: 'models.form.ollamalink' })} - - - - - + } label={intl.formatMessage({ id: 'model.form.ollama.model' })} placeholder={intl.formatMessage({ id: 'model.form.ollamaholder' })} diff --git a/src/pages/llmodels/index.tsx b/src/pages/llmodels/index.tsx index 291295bc..2b7bebf5 100644 --- a/src/pages/llmodels/index.tsx +++ b/src/pages/llmodels/index.tsx @@ -389,6 +389,10 @@ const Models: React.FC = () => { }; }, []); + const setDisableExpand = useCallback((record: any) => { + return !record?.replicas; + }, []); + useEffect(() => { const handleVisibilityChange = async () => { if (document.visibilityState === 'visible') { @@ -419,7 +423,8 @@ const Models: React.FC = () => { return (