mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-05-27 17:52:28 +02:00
Add files via upload
This commit is contained in:
@@ -22376,13 +22376,76 @@ body.projects-modal-open {
|
||||
.chat-project-panel {
|
||||
width: 280px;
|
||||
}
|
||||
/* 列表 + 底部按钮共用同一内容宽度,避免滚动条缩进导致左右不齐 */
|
||||
.chat-project-panel-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.chat-project-panel .role-selection-list-main {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
max-height: min(360px, 50vh);
|
||||
padding-right: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.chat-project-panel .role-selection-item-main {
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
}
|
||||
.chat-project-panel-loading,
|
||||
.chat-project-panel-empty {
|
||||
padding: 16px 14px;
|
||||
padding: 16px 0;
|
||||
font-size: 0.8125rem;
|
||||
color: #64748b;
|
||||
text-align: center;
|
||||
}
|
||||
.chat-project-panel-footer {
|
||||
flex-shrink: 0;
|
||||
margin-top: 6px;
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.06);
|
||||
width: 100%;
|
||||
}
|
||||
.chat-project-panel .role-selection-item-main.chat-project-panel-create-btn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
padding: 12px;
|
||||
border: 1.5px dashed rgba(99, 102, 241, 0.45);
|
||||
border-radius: 12px;
|
||||
background: rgba(99, 102, 241, 0.06);
|
||||
color: #4f46e5;
|
||||
font-size: 0.8125rem;
|
||||
font-weight: 600;
|
||||
box-shadow: none;
|
||||
transform: none;
|
||||
}
|
||||
.chat-project-panel .role-selection-item-main.chat-project-panel-create-btn:hover,
|
||||
.chat-project-panel .role-selection-item-main.chat-project-panel-create-btn:focus-visible,
|
||||
.chat-project-panel .role-selection-item-main.chat-project-panel-create-btn:active {
|
||||
background: rgba(99, 102, 241, 0.12);
|
||||
border-color: rgba(99, 102, 241, 0.65);
|
||||
color: #4338ca;
|
||||
box-shadow: none;
|
||||
transform: none;
|
||||
}
|
||||
.chat-project-panel-create-icon {
|
||||
flex-shrink: 0;
|
||||
font-size: 1.125rem;
|
||||
line-height: 1;
|
||||
font-weight: 500;
|
||||
}
|
||||
.chat-project-panel-create-label {
|
||||
line-height: 1.4;
|
||||
}
|
||||
@media (max-width: 900px) {
|
||||
#page-projects .page-content.projects-page-layout {
|
||||
flex-direction: column;
|
||||
|
||||
@@ -906,6 +906,13 @@ function showNewProjectModal() {
|
||||
openProjectsOverlay('project-modal');
|
||||
}
|
||||
|
||||
/** 从对话区「选择项目」面板打开新建项目,创建成功后自动绑定当前对话 */
|
||||
function showNewProjectModalFromChat() {
|
||||
closeChatProjectPanel();
|
||||
window._projectModalFromChat = true;
|
||||
showNewProjectModal();
|
||||
}
|
||||
|
||||
async function saveProjectModal() {
|
||||
const name = document.getElementById('project-modal-name').value.trim();
|
||||
if (!name) return alert('请输入项目名称');
|
||||
@@ -922,13 +929,22 @@ async function saveProjectModal() {
|
||||
alert(err.error || '保存失败');
|
||||
return;
|
||||
}
|
||||
const fromChat = !!window._projectModalFromChat;
|
||||
window._projectModalFromChat = false;
|
||||
closeProjectModal();
|
||||
const saved = await res.json();
|
||||
await loadProjectsList();
|
||||
if (saved.id) await selectProject(saved.id);
|
||||
if (saved.id) {
|
||||
if (fromChat && !editId) {
|
||||
await applyChatProjectSelection(saved.id);
|
||||
} else {
|
||||
await selectProject(saved.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function closeProjectModal() {
|
||||
window._projectModalFromChat = false;
|
||||
closeProjectsOverlay('project-modal');
|
||||
}
|
||||
|
||||
@@ -1259,7 +1275,7 @@ function renderChatProjectPanelList() {
|
||||
const activeProjects = projectsCache.filter((p) => p.status !== 'archived');
|
||||
const items = [{ id: '', name: '无项目', description: '不绑定项目黑板' }, ...activeProjects];
|
||||
if (!items.length) {
|
||||
list.innerHTML = '<div class="chat-project-panel-empty">暂无项目,可在「项目管理」中创建</div>';
|
||||
list.innerHTML = '<div class="chat-project-panel-empty">暂无项目,点击下方「新建项目」</div>';
|
||||
return;
|
||||
}
|
||||
list.innerHTML = '';
|
||||
@@ -1414,6 +1430,7 @@ if (document.readyState === 'loading') {
|
||||
|
||||
window.initProjectsPage = initProjectsPage;
|
||||
window.showNewProjectModal = showNewProjectModal;
|
||||
window.showNewProjectModalFromChat = showNewProjectModalFromChat;
|
||||
window.saveProjectModal = saveProjectModal;
|
||||
window.closeProjectModal = closeProjectModal;
|
||||
window.selectProject = selectProject;
|
||||
|
||||
@@ -972,7 +972,15 @@
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<div id="chat-project-list" class="role-selection-list-main"></div>
|
||||
<div class="chat-project-panel-body">
|
||||
<div id="chat-project-list" class="role-selection-list-main"></div>
|
||||
<div class="chat-project-panel-footer">
|
||||
<button type="button" class="role-selection-item-main chat-project-panel-create-btn" onclick="showNewProjectModalFromChat()">
|
||||
<span class="chat-project-panel-create-icon" aria-hidden="true">+</span>
|
||||
<span class="chat-project-panel-create-label">新建项目</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="role-selector-wrapper" class="role-selector-wrapper">
|
||||
|
||||
Reference in New Issue
Block a user