vue+python实现类似cursor的ai编程助手前端交互html代码
代码语言:html
所属分类:其他
代码描述:vue+python实现类似cursor的ai编程助手前端交互html代码
代码标签: vue python 类似 cursor ai 编程 助手 前端 交互 html 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Code Editor</title>
<link rel='stylesheet' href='//repo.bfw.wiki/bfwrepo/js/codemirror/lib/codemirror.css'>
<link rel='stylesheet' href='//repo.bfw.wiki/bfwrepo/js/codemirror/theme/material.css'>
<style>
.maineditor {
display: flex;
flex-direction: row;
height: 100vh;
width: 100vw;
overflow: hidden;
}
.selected-label {
color: green;
margin-left: 10px;
}
/* 自定义滚动条样式 */
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background: #1e1e1e;
border-radius: 5px;
}
::-webkit-scrollbar-thumb {
background: #444;
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
/* Firefox 滚动条样式 */
* {
scrollbar-color: #444 #1e1e1e;
scrollbar-width: thin;
}
body {
margin: 0;
padding: 0;
display: flex;
height: 100vh;
font-family: Arial, sans-serif;
background-color: #1e1e1e;
color: white;
overflow: hidden;
}
#sidebar {
width: 250px;
background-color: #252526;
padding: 10px;
overflow-y: auto;
border-right: 1px solid #444;
}
#editor {
flex: 1;
background-color: #1e1e1e;
display: flex;
flex-direction: column;
overflow: hidden;
}
.file-item,
.folder-item,
.project-item {
cursor: pointer;
padding: 5px;
margin: 5px 0;
border-radius: 3px;
display: flex;
align-items: center;
}
.file-item:hover,
.folder-item:hover,
.project-item:hover {
background-color: #2a2d2e;
}
.context-btn {
margin-left: 10px;
cursor: pointer;
color: #ccc;
font-size: 12px;
}
.folder-item::before,
.file-item::before {
content: '';
display: inline-block;
width: 16px;
height: 16px;
margin-right: 5px;
background-size: cover;
}
.folder-item::before {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJoLThsLTItMnoiLz48L3N2Zz4=');
}
.file-item::before {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjhsLTYtNnptNCAxOEg2VjRoN3Y1aDV2MTF6Ii8+PC9zdmc+');
}
.folder-item.collapsed::before {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMCA4SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJoLThsLTItMnoiLz48L3N2Zz4=');
}
.folder-item.expanded::before {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xOSAxMEg1Yy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LThjMC0xLjEtLjktMi0yLTJ6bS04IDZIOXYtMmgydjJ6bTAtNEg5di0yaDJ2MnptNC40IDRoLTMuOGMtLjMgMC0uNi0uMi0uOC0uNGwtMS4yLTEuNmgxLjJsLjYuOWg4LjJsLjYtLjkxIDEuMiAxLjYxYy0uMi4yLS41LjQtLjguNHoiLz48L3N2Zz4=');
}
#tabs {
display: flex;
background-color: #252526;
padding: 5px;
border-bottom: 1px solid #444;
}
.tab {
display: flex;
align-items: center;
padding: 8px 12px;
margin-right: 5px;
cursor: pointer;
background-color: #2a2d2e;
border-radius: 3px;
position: relative;
}
.tab.active {
background-color: #0e639c;
}
.close-button {
margin-left: 8px;
cursor: pointer;
font-size: 14px;
color: #ccc;
}
.close-button:hover {
color: white;
}
#save-button {
position: absolute;
top: 10px;
right: 10px;
background-color: #0e639c;
color: white;
border: none;
padding: 8px 12px;
border-radius: 3px;
cursor: pointer;
}
#save-button:hover {
background-color: #1177bb;
}
.CodeMirror {
height: 100%;
/* 确保编辑器占据整个容器高度 */
}
.sub-container {
margin-left: 20px;
display: none;
}
.folder-item.expanded+.sub-container {
display: block;
}
#code-editor-container {
flex: 1;
/* 默认隐藏 */
height: 100vh;
overflow: hidden;
}
#code-editor-container.active {
display: block;
/* 显示编辑器容器 */
}
.code-editor-wrapper {
height: 100%;
/* 确保编辑器占据整个容器高度 */
}
/* 聊天窗口样式 */
#chat-window {
position: fixed;
bottom: 20px;
right: 20px;
width: 300px;
height: 600px;
background-color: #252526;
border: 1px solid #444;
border-radius: 5px;
display: flex;
flex-direction: column;
overflow: hidden;
z-index: 1000;
}
#chat-icon {
position: fixed;
bottom: 20px;
right: 20px;
cursor: pointer;
}
#minimize-btn {
float: right;
background: none;
border: none;
font-size: 20px;
cursor: pointer;
}
/* 开关样式 */
.switch {
position: relative;
display: inline-block;
width: 40px;
height: 18px;
margin-left: 10px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #444;
transition: 0.4s;
border-radius: 18px;
}
.slider:before {
position: absolute;
content: '';
height: 14px;
width: 14px;
left: 2px;
bottom: 2px;
background-color: white;
transition: 0.4s;
border-radius: 50%;
}
input:checked+.slider {
background-color: #0e639c;
}
input:checked+.slider:before {
transform: translateX(20px);
}
/* 开关标签样式 */
.switch-label {
display: flex;
align-items: center;
color: white;
font-size: 12px;
}
/* 聊天窗口头部布局 */
#chat-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px;
background-color: #1e1e1e;
cursor: move;
border-bottom: 1px solid #444;
}
#chat-body {
flex: 1;
padding: 10px;
overflow-y: auto;
background-color: #252526;
font-size: 12px;
line-height: 20px;
}
#chat-body ol,
#chat-body ul {
margin: 0;
padding: 10px;
}
#chat-input {
padding: 10px;
background-color: #1e1e1e;
border-top: 1px solid #444;
}
#chat-input textarea {
width: 100%;
height: 50px;
background-color: #252526;
color: white;
border: 1px solid #444;
border-radius: 3px;
padding: 5px;
}
.message {
margin-bottom: 10px;
word-wrap: break-word;
}
.message.user {
color: #4CAF50;
}
.message.ai {
color: #2196F3;
}
/* 代码块样式 */
.message.ai pre {
position: relative;
background-color: #1e1e1e;
padding: 10px;
border-radius: 5px;
overflow-x: auto;
}
.message.ai code {
font-family: monospace;
background-color: #1e1e1e;
padding: 2px 4px;
border-radius: 3px;
}
/* 复制按钮样式 */
.copy-button {
position: absolute;
top: 5px;
right: 5px;
background-color: #444;
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
cursor: pointer;
font-size: 12px;
}
.copy-button:hover {
background-color: #555;
}
/* 右键菜单样式 */
#context-menu {
position: absolute;
background-color: #252526;
border: 1px solid #444;
border-radius: 3px;
padding: 5px 0;
z-index: 1000;
}
#context-menu .menu-item {
padding: 8px 12px;
color: white;
cursor: pointer;
}
#context-menu .menu-item:hover {
background-color: #2a2d2e;
}
#chat-context {
margin-bottom: 10px;
}
#context-selector {
display: flex;
gap: 10px;
margin-bottom: 10px;
}
#context-list {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.context-item {
display: flex;
align-items: center;
background-color: #2a2d2e;
padding: 5px 10px;
border-radius: 3px;
font-size: 14px;
}
.context-item .remove-button {
margin-left: 10px;
cursor: pointer;
color: #ff6b6b;
}
.context-item .remove-button:hover {
color: #ff3b3b;
}
/* 模态框样式 */
.modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
justify-content: center;
align-items: center;
z-index: 1000;
}
.modal-content {
background-color: #252526;
padding: 20px;
margin-left: calc((100vw - 400px) / 2);
margin-top: calc((100vh - 300px) / 2);
border-radius: 5px;
width: 400px;
max-height: 300px;
overflow-y: auto;
}
.modal-header {
display: flex;
.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0