style: 统一文件夹图标样式并修复缩进问题
更新前端文件夹相关图标为更一致的填充样式 修复后端Python代码中的缩进不一致问题
This commit is contained in:
parent
192da56fca
commit
295d019d16
@ -402,8 +402,8 @@ async def delete_document(db_id: str, doc_id: str, current_user: User = Depends(
|
||||
# Check if it is a folder
|
||||
is_folder = file_meta_info.get("meta", {}).get("is_folder", False)
|
||||
if is_folder:
|
||||
await knowledge_base.delete_folder(db_id, doc_id)
|
||||
return {"message": "文件夹删除成功"}
|
||||
await knowledge_base.delete_folder(db_id, doc_id)
|
||||
return {"message": "文件夹删除成功"}
|
||||
|
||||
file_name = file_meta_info.get("meta", {}).get("filename")
|
||||
|
||||
@ -1162,8 +1162,8 @@ async def create_folder(
|
||||
db_id: str,
|
||||
folder_name: str = Body(..., 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:
|
||||
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()}")
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
|
||||
@knowledge.put("/databases/{db_id}/documents/{doc_id}/move")
|
||||
async def move_document(
|
||||
db_id: str,
|
||||
doc_id: str,
|
||||
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}")
|
||||
|
||||
@ -213,6 +213,7 @@ class KnowledgeBase(ABC):
|
||||
def create_folder(self, db_id: str, folder_name: str, parent_id: str | None = None) -> dict:
|
||||
"""Create a folder in the database."""
|
||||
import uuid
|
||||
|
||||
folder_id = f"folder-{uuid.uuid4()}"
|
||||
|
||||
self.files_meta[folder_id] = {
|
||||
@ -224,7 +225,7 @@ class KnowledgeBase(ABC):
|
||||
"created_at": utc_isoformat(),
|
||||
"status": "done",
|
||||
"path": folder_name,
|
||||
"file_type": "folder"
|
||||
"file_type": "folder",
|
||||
}
|
||||
self._save_metadata()
|
||||
return self.files_meta[folder_id]
|
||||
@ -319,16 +320,16 @@ class KnowledgeBase(ABC):
|
||||
if file_info.get("database_id") == db_id:
|
||||
created_at = self._normalize_timestamp(file_info.get("created_at"))
|
||||
db_files[file_id] = {
|
||||
"file_id": file_id,
|
||||
"filename": file_info.get("filename", ""),
|
||||
"path": file_info.get("path", ""),
|
||||
"type": file_info.get("file_type", ""),
|
||||
"status": file_info.get("status", "done"),
|
||||
"created_at": created_at,
|
||||
"processing_params": file_info.get("processing_params", None),
|
||||
"is_folder": file_info.get("is_folder", False),
|
||||
"parent_id": file_info.get("parent_id", None),
|
||||
}
|
||||
"file_id": file_id,
|
||||
"filename": file_info.get("filename", ""),
|
||||
"path": file_info.get("path", ""),
|
||||
"type": file_info.get("file_type", ""),
|
||||
"status": file_info.get("status", "done"),
|
||||
"created_at": created_at,
|
||||
"processing_params": file_info.get("processing_params", None),
|
||||
"is_folder": file_info.get("is_folder", False),
|
||||
"parent_id": file_info.get("parent_id", None),
|
||||
}
|
||||
|
||||
# 按创建时间倒序排序文件列表
|
||||
sorted_files = dict(
|
||||
@ -472,7 +473,8 @@ class KnowledgeBase(ABC):
|
||||
"""
|
||||
# Find all 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
|
||||
]
|
||||
|
||||
@ -518,7 +520,7 @@ class KnowledgeBase(ABC):
|
||||
while current:
|
||||
parent_meta = self.files_meta.get(current)
|
||||
if not parent_meta:
|
||||
break # Should not happen if integrity is maintained
|
||||
break # Should not happen if integrity is maintained
|
||||
if current == file_id:
|
||||
raise ValueError("Cannot move a folder into its own subfolder")
|
||||
current = parent_meta.get("parent_id")
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
type="secondary"
|
||||
@click="showCreateFolderModal"
|
||||
:loading="refreshing"
|
||||
:icon="h(FolderOutlined)"
|
||||
:icon="h(FolderAddOutlined)"
|
||||
style="margin-left: 8px;"
|
||||
>新建文件夹</a-button>
|
||||
</div>
|
||||
@ -141,8 +141,8 @@
|
||||
<template #bodyCell="{ column, text, record }">
|
||||
<div v-if="column.key === 'filename'">
|
||||
<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)">
|
||||
<component :is="expandedRowKeys.includes(record.file_id) ? h(FolderOpenOutlined) : h(FolderOutlined)" style="margin-right: 6px; color: #ffb800;" />
|
||||
<span class="folder-row" @click="toggleExpand(record)">
|
||||
<component :is="expandedRowKeys.includes(record.file_id) ? h(FolderOpenFilled) : h(FolderFilled)" style="margin-right: 12px; color: #ffb800;" />
|
||||
{{ record.filename }}
|
||||
</span>
|
||||
</template>
|
||||
@ -173,7 +173,7 @@
|
||||
<div class="file-action-list">
|
||||
<template v-if="record.is_folder">
|
||||
<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 type="text" block danger @click="handleDeleteFolder(record)">
|
||||
@ -219,8 +219,9 @@ import {
|
||||
ClockCircleFilled,
|
||||
PlusOutlined,
|
||||
ReloadOutlined,
|
||||
FolderOpenOutlined,
|
||||
FolderOutlined,
|
||||
FolderFilled,
|
||||
FolderAddOutlined,
|
||||
FolderOpenFilled,
|
||||
} from '@ant-design/icons-vue';
|
||||
import {
|
||||
Trash2,
|
||||
@ -228,6 +229,7 @@ import {
|
||||
RefreshCw,
|
||||
ChevronLast,
|
||||
Ellipsis,
|
||||
FolderPlus,
|
||||
} from 'lucide-vue-next';
|
||||
|
||||
const store = useDatabaseStore();
|
||||
@ -1070,6 +1072,7 @@ import ChunkParamsConfig from '@/components/ChunkParamsConfig.vue';
|
||||
.folder-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: var(--main-color);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user