修改了MD渲染样式
parent
7f5d16e9fc
commit
8c303df485
|
@ -356,6 +356,57 @@
|
|||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
/* Audio Upload Section */
|
||||
.audio-upload-section {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.show-upload-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: linear-gradient(135deg, #f59e0b, #d97706);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 2px 4px rgba(245, 158, 11, 0.3);
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.show-upload-btn:hover {
|
||||
background: linear-gradient(135deg, #d97706, #b45309);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 8px rgba(245, 158, 11, 0.4);
|
||||
}
|
||||
|
||||
.upload-header {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.close-upload-btn {
|
||||
background: #f1f5f9;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
padding: 0.5rem;
|
||||
cursor: pointer;
|
||||
color: #64748b;
|
||||
transition: all 0.3s ease;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.close-upload-btn:hover {
|
||||
background: #e2e8f0;
|
||||
color: #ef4444;
|
||||
}
|
||||
|
||||
/* File Upload Styles */
|
||||
.file-upload-container {
|
||||
position: relative;
|
||||
|
@ -513,4 +564,9 @@
|
|||
font-size: 0.8rem;
|
||||
padding: 0.4rem 0.6rem;
|
||||
}
|
||||
|
||||
.show-upload-btn {
|
||||
padding: 0.6rem 1.2rem;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
}
|
|
@ -25,6 +25,7 @@ const EditMeeting = ({ user }) => {
|
|||
const [isUploading, setIsUploading] = useState(false);
|
||||
const [error, setError] = useState('');
|
||||
const [meeting, setMeeting] = useState(null);
|
||||
const [showUploadArea, setShowUploadArea] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
fetchMeetingData();
|
||||
|
@ -172,6 +173,7 @@ const EditMeeting = ({ user }) => {
|
|||
}
|
||||
|
||||
setAudioFile(null);
|
||||
setShowUploadArea(false);
|
||||
// Reset file input
|
||||
const fileInput = document.getElementById('audio-file');
|
||||
if (fileInput) fileInput.value = '';
|
||||
|
@ -321,45 +323,69 @@ const EditMeeting = ({ user }) => {
|
|||
</div>
|
||||
|
||||
<div className="form-group">
|
||||
<label>
|
||||
<Upload size={18} />
|
||||
重新上传录音
|
||||
</label>
|
||||
<div className="file-upload-container">
|
||||
<input
|
||||
type="file"
|
||||
id="audio-file"
|
||||
accept="audio/*"
|
||||
onChange={handleFileChange}
|
||||
className="file-input"
|
||||
/>
|
||||
<label htmlFor="audio-file" className="file-upload-label">
|
||||
<Plus size={20} />
|
||||
<span>选择新的音频文件</span>
|
||||
<small>支持 MP3, WAV, M4A 格式,最大100MB</small>
|
||||
</label>
|
||||
{audioFile && (
|
||||
<div className="selected-file">
|
||||
<span>已选择: {audioFile.name}</span>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setAudioFile(null)}
|
||||
className="remove-file"
|
||||
>
|
||||
<X size={16} />
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
{audioFile && (
|
||||
<div className="audio-upload-section">
|
||||
{!showUploadArea ? (
|
||||
<button
|
||||
type="button"
|
||||
onClick={handleUploadAudio}
|
||||
className="upload-btn"
|
||||
disabled={isUploading}
|
||||
onClick={() => setShowUploadArea(true)}
|
||||
className="show-upload-btn"
|
||||
>
|
||||
<Upload size={16} />
|
||||
{isUploading ? '上传并分析中...' : '上传并重新分析'}
|
||||
<span>重新上传录音文件</span>
|
||||
</button>
|
||||
) : (
|
||||
<div className="file-upload-container">
|
||||
<div className="upload-header">
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => {
|
||||
setShowUploadArea(false);
|
||||
setAudioFile(null);
|
||||
// Reset file input
|
||||
const fileInput = document.getElementById('audio-file');
|
||||
if (fileInput) fileInput.value = '';
|
||||
}}
|
||||
className="close-upload-btn"
|
||||
>
|
||||
<X size={16} />
|
||||
</button>
|
||||
</div>
|
||||
<input
|
||||
type="file"
|
||||
id="audio-file"
|
||||
accept="audio/*"
|
||||
onChange={handleFileChange}
|
||||
className="file-input"
|
||||
/>
|
||||
<label htmlFor="audio-file" className="file-upload-label">
|
||||
<Plus size={20} />
|
||||
<span>选择新的音频文件</span>
|
||||
<small>支持 MP3, WAV, M4A 格式,最大100MB</small>
|
||||
</label>
|
||||
{audioFile && (
|
||||
<div className="selected-file">
|
||||
<span>已选择: {audioFile.name}</span>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setAudioFile(null)}
|
||||
className="remove-file"
|
||||
>
|
||||
<X size={16} />
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
{audioFile && (
|
||||
<button
|
||||
type="button"
|
||||
onClick={handleUploadAudio}
|
||||
className="upload-btn"
|
||||
disabled={isUploading}
|
||||
>
|
||||
<Upload size={16} />
|
||||
{isUploading ? '上传并分析中...' : '上传并重新分析'}
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
.summary-content {
|
||||
line-height: 1.7;
|
||||
color: #475569;
|
||||
white-space: pre-wrap;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
/* Markdown content styling */
|
||||
|
|
Loading…
Reference in New Issue