mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 21:13:50 +00:00
perf: ui show;fix: avatar
This commit is contained in:
@@ -29,7 +29,6 @@ const ModelList = ({ models, modelId }: { models: ModelListItemType[]; modelId:
|
|||||||
}
|
}
|
||||||
: {})}
|
: {})}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (item._id === modelId) return;
|
|
||||||
router.replace(`/chat?modelId=${item._id}`);
|
router.replace(`/chat?modelId=${item._id}`);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
@@ -115,7 +115,7 @@ const PhoneSliderBar = ({
|
|||||||
onClose();
|
onClose();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Image src={item.avatar} mr={2} alt={''} w={'16px'} h={'16px'} />
|
<Image src={item.avatar || '/icon/logo.png'} mr={2} alt={''} w={'16px'} h={'16px'} />
|
||||||
<Box className={'textEllipsis'} flex={'1 0 0'} w={0}>
|
<Box className={'textEllipsis'} flex={'1 0 0'} w={0}>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Box>
|
</Box>
|
||||||
|
@@ -550,20 +550,20 @@ const Chat = ({
|
|||||||
onClick={onOpenSlider}
|
onClick={onOpenSlider}
|
||||||
/>
|
/>
|
||||||
<Box>{chatData.model.name}</Box>
|
<Box>{chatData.model.name}</Box>
|
||||||
<Menu autoSelect={false}>
|
{chatId && (
|
||||||
<MenuButton lineHeight={1}>
|
<Menu autoSelect={false}>
|
||||||
<MyIcon
|
<MenuButton lineHeight={1}>
|
||||||
name={'more'}
|
<MyIcon
|
||||||
w={'16px'}
|
name={'more'}
|
||||||
h={'16px'}
|
w={'16px'}
|
||||||
color={useColorModeValue('blackAlpha.700', 'white')}
|
h={'16px'}
|
||||||
/>
|
color={useColorModeValue('blackAlpha.700', 'white')}
|
||||||
</MenuButton>
|
/>
|
||||||
<MenuList minW={`90px !important`}>
|
</MenuButton>
|
||||||
<MenuItem onClick={() => router.replace(`/chat?modelId=${modelId}`)}>
|
<MenuList minW={`90px !important`}>
|
||||||
新对话
|
<MenuItem onClick={() => router.replace(`/chat?modelId=${modelId}`)}>
|
||||||
</MenuItem>
|
新对话
|
||||||
{chatId && (
|
</MenuItem>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
try {
|
try {
|
||||||
@@ -578,12 +578,12 @@ const Chat = ({
|
|||||||
>
|
>
|
||||||
删除记录
|
删除记录
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
)}
|
<MenuItem onClick={() => onclickExportChat('html')}>导出HTML格式</MenuItem>
|
||||||
<MenuItem onClick={() => onclickExportChat('html')}>导出HTML格式</MenuItem>
|
<MenuItem onClick={() => onclickExportChat('pdf')}>导出PDF格式</MenuItem>
|
||||||
<MenuItem onClick={() => onclickExportChat('pdf')}>导出PDF格式</MenuItem>
|
<MenuItem onClick={() => onclickExportChat('md')}>导出Markdown格式</MenuItem>
|
||||||
<MenuItem onClick={() => onclickExportChat('md')}>导出Markdown格式</MenuItem>
|
</MenuList>
|
||||||
</MenuList>
|
</Menu>
|
||||||
</Menu>
|
)}
|
||||||
</Flex>
|
</Flex>
|
||||||
<Drawer isOpen={isOpenSlider} placement="left" size={'xs'} onClose={onCloseSlider}>
|
<Drawer isOpen={isOpenSlider} placement="left" size={'xs'} onClose={onCloseSlider}>
|
||||||
<DrawerOverlay backgroundColor={'rgba(255,255,255,0.5)'} />
|
<DrawerOverlay backgroundColor={'rgba(255,255,255,0.5)'} />
|
||||||
@@ -805,7 +805,7 @@ const Chat = ({
|
|||||||
<ModalOverlay />
|
<ModalOverlay />
|
||||||
<ModalContent maxW={'min(90vw, 600px)'} pr={2} maxH={'80vh'} overflowY={'auto'}>
|
<ModalContent maxW={'min(90vw, 600px)'} pr={2} maxH={'80vh'} overflowY={'auto'}>
|
||||||
<ModalCloseButton />
|
<ModalCloseButton />
|
||||||
<ModalBody pt={5} fontSize={'sm'} whiteSpace={'pre-wrap'} textAlign={'justify'}>
|
<ModalBody pt={5} whiteSpace={'pre-wrap'} textAlign={'justify'}>
|
||||||
{showSystemPrompt}
|
{showSystemPrompt}
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
|
@@ -22,7 +22,7 @@ const NumberSetting = () => {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { userInfo, updateUserInfo, initUserInfo, setUserInfo } = useUserStore();
|
const { userInfo, updateUserInfo, initUserInfo, setUserInfo } = useUserStore();
|
||||||
const { setLoading } = useGlobalStore();
|
const { setLoading } = useGlobalStore();
|
||||||
const { register, handleSubmit } = useForm<UserUpdateParams>({
|
const { register, handleSubmit, reset } = useForm<UserUpdateParams>({
|
||||||
defaultValues: userInfo as UserType
|
defaultValues: userInfo as UserType
|
||||||
});
|
});
|
||||||
const [showPay, setShowPay] = useState(false);
|
const [showPay, setShowPay] = useState(false);
|
||||||
@@ -35,11 +35,11 @@ const NumberSetting = () => {
|
|||||||
|
|
||||||
const onclickSave = useCallback(
|
const onclickSave = useCallback(
|
||||||
async (data: UserUpdateParams) => {
|
async (data: UserUpdateParams) => {
|
||||||
if (data.openaiKey === userInfo?.openaiKey) return;
|
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
try {
|
try {
|
||||||
await putUserInfo(data);
|
await putUserInfo(data);
|
||||||
updateUserInfo(data);
|
updateUserInfo(data);
|
||||||
|
reset(data);
|
||||||
toast({
|
toast({
|
||||||
title: '更新成功',
|
title: '更新成功',
|
||||||
status: 'success'
|
status: 'success'
|
||||||
@@ -47,7 +47,7 @@ const NumberSetting = () => {
|
|||||||
} catch (error) {}
|
} catch (error) {}
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
},
|
},
|
||||||
[setLoading, toast, updateUserInfo, userInfo?.openaiKey]
|
[reset, setLoading, toast, updateUserInfo]
|
||||||
);
|
);
|
||||||
|
|
||||||
const onSelectFile = useCallback(
|
const onSelectFile = useCallback(
|
||||||
|
@@ -19,7 +19,7 @@ const ModelSchema = new Schema({
|
|||||||
},
|
},
|
||||||
avatar: {
|
avatar: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: '/icon/logo.png'
|
||||||
},
|
},
|
||||||
status: {
|
status: {
|
||||||
type: String,
|
type: String,
|
||||||
|
Reference in New Issue
Block a user