fix: set default spec to form

This commit is contained in:
jialin
2025-06-03 15:16:52 +08:00
parent 31ea81c211
commit ed28bcdfb0
10 changed files with 128 additions and 45 deletions
@@ -1,5 +1,6 @@
import IconFont from '@/components/icon-font';
import HotKeys, { KeyMap } from '@/config/hotkeys';
import { convertFileToBase64 } from '@/utils/load-audio-file';
import { ClearOutlined, SendOutlined, SwapOutlined } from '@ant-design/icons';
import { useIntl } from '@umijs/max';
import { Button, Checkbox, Divider, Input, Tooltip } from 'antd';
@@ -19,6 +20,12 @@ import '../style/message-input.less';
import ThumbImg from './thumb-img';
import UploadImg from './upload-img';
const audioTypeMap: Record<string, string> = {
'audio/wav': 'wav',
'audio/mp3': 'mp3',
'audio/mpeg': 'mp3'
};
type CurrentMessage = Omit<MessageItem, 'uid'>;
type ActionType =
@@ -260,6 +267,26 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
});
};
const handleUploadAudioChange = async (data: {
file: any;
fileList: any[];
}) => {
// convert audio file to base64
try {
console.log('audio file====', data.file);
const base64Audio = await convertFileToBase64(data.file);
setMessage({
...message,
audio: {
format: audioTypeMap[data.file.type],
dataUrl: base64Audio
}
});
} catch (error) {
console.error('Error converting audio to Base64:', error);
}
};
const handleDeleteImg = (uid: number | string) => {
const list = _.filter(
message.imgs,
@@ -360,6 +387,22 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
size="middle"
></UploadImg>
)}
{/* {actions.includes('upload') && message.role === Roles.User && (
<UploadAudio
type="text"
accept={'.mp3,.wav'}
size="middle"
shape="default"
icon={<CustomerServiceOutlined />}
onChange={handleUploadAudioChange}
></UploadAudio>
)} */}
{actions.includes('upload') && message.role === Roles.User && (
<UploadImg
handleUpdateImgList={handleUpdateImgList}
size="middle"
></UploadImg>
)}
{tools}
{actions.includes('clear') && (
<Tooltip