diff --git a/src/App.vue b/src/App.vue
index 5f57b89..c7caca8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -11,6 +11,7 @@
-
diff --git a/src/views/auth/Register.vue b/src/views/auth/Register.vue
index 07f3c87..a72c0c3 100644
--- a/src/views/auth/Register.vue
+++ b/src/views/auth/Register.vue
@@ -7,7 +7,7 @@
@change-language="handleLanguageChange"
@toggle-theme="toggleTheme"
>
-
+
{
});
-
diff --git a/src/views/document/DocumentAttachments.vue b/src/views/document/DocumentAttachments.vue
index 36070e9..3e111f2 100644
--- a/src/views/document/DocumentAttachments.vue
+++ b/src/views/document/DocumentAttachments.vue
@@ -202,13 +202,9 @@ const formatSize = (bytes) => {
return `${(value / (1024 * 1024)).toFixed(1)} MB`;
};
-const goBackToDocument = () => {
- if (kbId.value === 'personal') {
- router.push(`/mydocument/${docId.value}`);
- return;
- }
- router.push(`/knowledge-base/${kbId.value}/document/${docId.value}`);
-};
+import { navigateToDocument } from '@/utils/documentRoute';
+
+const goBackToDocument = () => navigateToDocument(router, kbId, docId);
onMounted(async () => {
await initLanguage();
diff --git a/src/views/document/DocumentEditor.vue b/src/views/document/DocumentEditor.vue
index 53d0453..c562370 100644
--- a/src/views/document/DocumentEditor.vue
+++ b/src/views/document/DocumentEditor.vue
@@ -341,8 +341,7 @@ const {
isTableDocument,
isSlideDocument,
isRichTextDocument,
- canManageAttachments,
- canManageSettings,
+ hasDocument,
collabEnabled,
inlineCommentEnabled,
createDialogKnowledgeBaseId,
@@ -352,6 +351,8 @@ const {
docId,
currentDocType
});
+const canManageAttachments = computed(() => hasDocument.value);
+const canManageSettings = computed(() => hasDocument.value);
const {
isEditingTitle,
pendingTitle,
@@ -532,21 +533,6 @@ watch(collabReady, async (ready) => {
color: var(--text-dark);
}
-.editor-footer {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: var(--spacing-sm) var(--spacing-lg);
- border-top: 1px solid var(--border-color);
- font-size: 12px;
- color: var(--text-light);
-}
-
-.dark-mode .editor-footer {
- border-color: var(--border-color);
- color: var(--text-light);
-}
-
.editor-fullscreen-header-btn {
color: var(--text-medium);
}
diff --git a/src/views/document/DocumentHistory.vue b/src/views/document/DocumentHistory.vue
index c13183c..7e1d9e8 100644
--- a/src/views/document/DocumentHistory.vue
+++ b/src/views/document/DocumentHistory.vue
@@ -248,13 +248,9 @@ const handleSizeChange = async (size) => {
await fetchVersions();
};
-const goBackToDocument = () => {
- if (kbId.value === 'personal') {
- router.push(`/mydocument/${docId.value}`);
- return;
- }
- router.push(`/knowledge-base/${kbId.value}/document/${docId.value}`);
-};
+import { navigateToDocument } from '@/utils/documentRoute';
+
+const goBackToDocument = () => navigateToDocument(router, kbId, docId);
onMounted(async () => {
await initLanguage();
diff --git a/src/views/document/DocumentSettings.vue b/src/views/document/DocumentSettings.vue
index 7708a83..4e23a64 100644
--- a/src/views/document/DocumentSettings.vue
+++ b/src/views/document/DocumentSettings.vue
@@ -97,13 +97,9 @@ const settings = reactive({
isPublic: false
});
-const goBackToDocument = () => {
- if (kbId.value === 'personal') {
- router.push(`/mydocument/${docId.value}`);
- return;
- }
- router.push(`/knowledge-base/${kbId.value}/document/${docId.value}`);
-};
+import { navigateToDocument } from '@/utils/documentRoute';
+
+const goBackToDocument = () => navigateToDocument(router, kbId, docId);
const loadSettings = async () => {
if (!docId.value) {
diff --git a/src/views/knowledge-base/KnowledgeBase.vue b/src/views/knowledge-base/KnowledgeBase.vue
index 40753c9..2fa768e 100644
--- a/src/views/knowledge-base/KnowledgeBase.vue
+++ b/src/views/knowledge-base/KnowledgeBase.vue
@@ -142,111 +142,10 @@ onMounted(() => {
diff --git a/src/views/manage/SystemManageOrganization.vue b/src/views/manage/SystemManageOrganization.vue
index bd9334d..d3f07a3 100644
--- a/src/views/manage/SystemManageOrganization.vue
+++ b/src/views/manage/SystemManageOrganization.vue
@@ -25,7 +25,7 @@
:section-title="t('system.organization.placeholderTitle')"
body-padding="md"
mode="tree"
- :rows="pagedOrgNodes"
+ :rows="orgTreeData"
:columns="orgColumns"
:is-dark="isDarkMode"
row-key="external_id"
@@ -259,8 +259,6 @@ const orgColumns = computed(() => [
const pageSizes = [6, 10, 20];
const paginationLayout = 'total, prev, pager, next';
-const pagedOrgNodes = computed(() => orgTreeData.value);
-
const dialogTitle = computed(() => {
if (createParent.value?.name) {
return t('system.organization.createChildWith', { name: createParent.value.name });
diff --git a/src/views/user/UserNotifications.vue b/src/views/user/UserNotifications.vue
index ed6f31b..fd47751 100644
--- a/src/views/user/UserNotifications.vue
+++ b/src/views/user/UserNotifications.vue
@@ -21,7 +21,7 @@