feat:实现波形预览的功能

This commit is contained in:
Roe-xin
2025-12-16 16:58:35 +08:00
parent 4918399325
commit f2382a8eed
5 changed files with 1020 additions and 8 deletions

View File

@ -1,3 +1,5 @@
import { getWaveformPreviewContent, getWaveformPreviewScript } from './waveformPreviewContent';
/**
* 获取 WebView 面板的 HTML 内容
*/
@ -381,6 +383,7 @@ export function getWebviewContent(iconUri?: string): string {
border-radius: 4px;
margin-top: 10px;
}
${getWaveformPreviewContent()}
.file-editor-section {
margin-bottom: 15px;
padding: 15px;
@ -954,6 +957,23 @@ export function getWebviewContent(iconUri?: string): string {
case 'receiveMessage':
addMessage(message.text, 'bot');
break;
case 'vcdGenerated':
// VCD 文件生成成功,显示带波形预览的消息
const messageDiv = document.createElement('div');
messageDiv.className = 'message bot-message';
const messageContent = document.createElement('div');
messageContent.textContent = message.text;
messageDiv.appendChild(messageContent);
// 添加波形预览组件
if (message.vcdFilePath && message.fileName) {
addWaveformPreviewToMessage(messageDiv, message.vcdFilePath, message.fileName);
}
messagesEl.appendChild(messageDiv);
messagesEl.scrollTop = messagesEl.scrollHeight;
break;
case 'fileContent':
displayFileContent(message.content, message.filePath);
break;
@ -969,6 +989,12 @@ export function getWebviewContent(iconUri?: string): string {
case 'fileUpdateError':
addMessage(\`\${message.error}\`, 'bot');
break;
case 'vcdInfo':
// 接收到 VCD 文件信息,渲染波形预览
if (message.containerId && message.vcdInfo) {
renderWaveformInfo(message.containerId, message.vcdInfo);
}
break;
}
});
@ -992,6 +1018,8 @@ export function getWebviewContent(iconUri?: string): string {
autoResizeTextarea();
messageInput.focus();
${getWaveformPreviewScript()}
</script>
</body>
</html>`;