From fb8f52fe7636137152038322054deeca3a9e4074 Mon Sep 17 00:00:00 2001 From: XingfenD Date: Tue, 11 Aug 2026 15:03:02 +0800 Subject: [PATCH] simplify --- src/App.vue | 69 +--------- src/composables/actions/useApiAction.js | 3 - .../useRichTextLinkOverlay.js | 4 +- .../editor/useDocumentEditorPolicy.js | 4 - .../editor/useDocumentRouteContext.js | 2 +- .../tree/useDocumentTreeContextMenu.js | 14 +- .../document/tree/useInlineRename.js | 14 +- .../useKnowledgeBaseDetailPage.js | 30 ++-- .../useKnowledgeBaseListPage.js | 7 +- src/composables/layout/createExpiringCache.js | 105 ++++++++++++++ src/composables/layout/usePanelSidebar.js | 16 +-- .../layout/useSideBarDisplayCache.js | 128 +----------------- .../layout/useTopNavDisplayCache.js | 120 +--------------- .../notification/useNotificationCenter.js | 30 ++-- .../template/useTemplateListPage.js | 8 +- .../template/useTemplatePreviewPage.js | 7 +- src/config/baseUrl.js | 2 +- src/i18n/index.js | 3 +- src/i18n/locales/en-US.js | 2 - src/i18n/locales/zh-CN.js | 2 - src/router/index.js | 98 +++++--------- src/services/api.js | 20 --- src/services/api/knowledgeBase.js | 7 +- src/services/api/shared.js | 10 +- src/services/api/template.js | 18 +-- src/services/grpc_client.js | 4 +- src/styles/auth-form.css | 60 ++++++++ src/styles/dark-mode-overrides.css | 58 ++++++++ src/utils/documentRoute.js | 11 ++ src/utils/formatDate.js | 6 + src/utils/resolveBool.js | 12 ++ src/views/auth/Login.vue | 65 +-------- src/views/auth/Register.vue | 65 +-------- src/views/document/DocumentAttachments.vue | 10 +- src/views/document/DocumentEditor.vue | 20 +-- src/views/document/DocumentHistory.vue | 10 +- src/views/document/DocumentSettings.vue | 10 +- src/views/knowledge-base/KnowledgeBase.vue | 101 -------------- src/views/manage/SystemManageOrganization.vue | 4 +- src/views/user/UserNotifications.vue | 4 +- 40 files changed, 376 insertions(+), 787 deletions(-) create mode 100644 src/composables/layout/createExpiringCache.js create mode 100644 src/styles/auth-form.css create mode 100644 src/styles/dark-mode-overrides.css create mode 100644 src/utils/documentRoute.js create mode 100644 src/utils/formatDate.js create mode 100644 src/utils/resolveBool.js 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 @@