style: 统一文件夹图标样式并修复缩进问题

更新前端文件夹相关图标为更一致的填充样式
修复后端Python代码中的缩进不一致问题
This commit is contained in:
Wenjie Zhang 2025-12-30 23:57:20 +08:00
parent 192da56fca
commit 295d019d16
4 changed files with 59 additions and 53 deletions

View File

@ -1162,8 +1162,8 @@ async def create_folder(
db_id: str, db_id: str,
folder_name: str = Body(..., embed=True), folder_name: str = Body(..., embed=True),
parent_id: str | None = Body(None, embed=True), parent_id: str | None = Body(None, embed=True),
current_user: User = Depends(get_admin_user) current_user: User = Depends(get_admin_user),
): ):
"""创建文件夹""" """创建文件夹"""
try: try:
return await knowledge_base.create_folder(db_id, folder_name, parent_id) return await knowledge_base.create_folder(db_id, folder_name, parent_id)
@ -1171,12 +1171,13 @@ async def create_folder(
logger.error(f"创建文件夹失败 {e}, {traceback.format_exc()}") logger.error(f"创建文件夹失败 {e}, {traceback.format_exc()}")
raise HTTPException(status_code=500, detail=str(e)) raise HTTPException(status_code=500, detail=str(e))
@knowledge.put("/databases/{db_id}/documents/{doc_id}/move") @knowledge.put("/databases/{db_id}/documents/{doc_id}/move")
async def move_document( async def move_document(
db_id: str, db_id: str,
doc_id: str, doc_id: str,
new_parent_id: str | None = Body(..., embed=True), new_parent_id: str | None = Body(..., embed=True),
current_user: User = Depends(get_admin_user) current_user: User = Depends(get_admin_user),
): ):
"""移动文件或文件夹""" """移动文件或文件夹"""
logger.debug(f"Move document {doc_id} to {new_parent_id} in {db_id}") logger.debug(f"Move document {doc_id} to {new_parent_id} in {db_id}")

View File

@ -213,6 +213,7 @@ class KnowledgeBase(ABC):
def create_folder(self, db_id: str, folder_name: str, parent_id: str | None = None) -> dict: def create_folder(self, db_id: str, folder_name: str, parent_id: str | None = None) -> dict:
"""Create a folder in the database.""" """Create a folder in the database."""
import uuid import uuid
folder_id = f"folder-{uuid.uuid4()}" folder_id = f"folder-{uuid.uuid4()}"
self.files_meta[folder_id] = { self.files_meta[folder_id] = {
@ -224,7 +225,7 @@ class KnowledgeBase(ABC):
"created_at": utc_isoformat(), "created_at": utc_isoformat(),
"status": "done", "status": "done",
"path": folder_name, "path": folder_name,
"file_type": "folder" "file_type": "folder",
} }
self._save_metadata() self._save_metadata()
return self.files_meta[folder_id] return self.files_meta[folder_id]
@ -472,7 +473,8 @@ class KnowledgeBase(ABC):
""" """
# Find all children # Find all children
children = [ children = [
fid for fid, meta in self.files_meta.items() fid
for fid, meta in self.files_meta.items()
if meta.get("database_id") == db_id and meta.get("parent_id") == folder_id if meta.get("database_id") == db_id and meta.get("parent_id") == folder_id
] ]

View File

@ -12,7 +12,7 @@
type="secondary" type="secondary"
@click="showCreateFolderModal" @click="showCreateFolderModal"
:loading="refreshing" :loading="refreshing"
:icon="h(FolderOutlined)" :icon="h(FolderAddOutlined)"
style="margin-left: 8px;" style="margin-left: 8px;"
>新建文件夹</a-button> >新建文件夹</a-button>
</div> </div>
@ -141,8 +141,8 @@
<template #bodyCell="{ column, text, record }"> <template #bodyCell="{ column, text, record }">
<div v-if="column.key === 'filename'"> <div v-if="column.key === 'filename'">
<template v-if="record.is_folder"> <template v-if="record.is_folder">
<span class="folder-row" style="padding-left: 0; color: var(--gray-900); font-weight: 500; cursor: pointer;" @click="toggleExpand(record)"> <span class="folder-row" @click="toggleExpand(record)">
<component :is="expandedRowKeys.includes(record.file_id) ? h(FolderOpenOutlined) : h(FolderOutlined)" style="margin-right: 6px; color: #ffb800;" /> <component :is="expandedRowKeys.includes(record.file_id) ? h(FolderOpenFilled) : h(FolderFilled)" style="margin-right: 12px; color: #ffb800;" />
{{ record.filename }} {{ record.filename }}
</span> </span>
</template> </template>
@ -173,7 +173,7 @@
<div class="file-action-list"> <div class="file-action-list">
<template v-if="record.is_folder"> <template v-if="record.is_folder">
<a-button type="text" block @click="showCreateFolderModal(record.file_id)"> <a-button type="text" block @click="showCreateFolderModal(record.file_id)">
<template #icon><component :is="h(PlusOutlined)" style="width: 14px; height: 14px;" /></template> <template #icon><component :is="h(FolderPlus)" style="width: 14px; height: 14px;" /></template>
新建子文件夹 新建子文件夹
</a-button> </a-button>
<a-button type="text" block danger @click="handleDeleteFolder(record)"> <a-button type="text" block danger @click="handleDeleteFolder(record)">
@ -219,8 +219,9 @@ import {
ClockCircleFilled, ClockCircleFilled,
PlusOutlined, PlusOutlined,
ReloadOutlined, ReloadOutlined,
FolderOpenOutlined, FolderFilled,
FolderOutlined, FolderAddOutlined,
FolderOpenFilled,
} from '@ant-design/icons-vue'; } from '@ant-design/icons-vue';
import { import {
Trash2, Trash2,
@ -228,6 +229,7 @@ import {
RefreshCw, RefreshCw,
ChevronLast, ChevronLast,
Ellipsis, Ellipsis,
FolderPlus,
} from 'lucide-vue-next'; } from 'lucide-vue-next';
const store = useDatabaseStore(); const store = useDatabaseStore();
@ -1070,6 +1072,7 @@ import ChunkParamsConfig from '@/components/ChunkParamsConfig.vue';
.folder-row { .folder-row {
display: flex; display: flex;
align-items: center; align-items: center;
cursor: pointer;
&:hover { &:hover {
color: var(--main-color); color: var(--main-color);