Add files via upload

This commit is contained in:
公明
2026-05-27 15:34:53 +08:00
committed by GitHub
parent bad323cd0e
commit 117bed6839
3 changed files with 92 additions and 4 deletions
+64 -1
View File
@@ -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;
+19 -2
View File
@@ -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;
+9 -1
View File
@@ -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">