From fb4499a6aa36ca631379e1ae89cd826c5165af76 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Thu, 24 Nov 2022 21:17:05 +0800 Subject: [PATCH] feat: add query attachments by ungrouped parameter support (#706) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /kind feature /milestone 2.0 #### What this PR does / why we need it: 附件管理支持通过参数筛选出未分组的附件。适配 https://github.com/halo-dev/halo/pull/2752 #### Which issue(s) this PR fixes: Fixes https://github.com/halo-dev/halo/issues/2451 #### Special notes for your reviewer: /cc @halo-dev/sig-halo-console 测试方式: 1. Halo 需要切换到 https://github.com/halo-dev/halo/pull/2752 分支。 2. Console 需要 `pnpm install` 3. 上传若干未分组附件,然后切换到未分组的标签,检查是否查询正确。 4. 将部分附件移动至某个分组,在切换到未分组的标签,检查附件是否正确。 #### Does this PR introduce a user-facing change? ```release-note 附件管理支持未分组的筛选条件。 ``` --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- src/modules/contents/attachments/AttachmentList.vue | 8 ++++++-- .../attachments/components/AttachmentGroupList.vue | 9 +++++---- .../contents/attachments/composables/use-attachment.ts | 1 + 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 75803951..9bff579c 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@formkit/themes": "^1.0.0-beta.11", "@formkit/vue": "^1.0.0-beta.11", "@formkit/utils": "^1.0.0-beta.11", - "@halo-dev/api-client": "^0.0.50", + "@halo-dev/api-client": "^0.0.51", "@halo-dev/components": "workspace:*", "@halo-dev/console-shared": "workspace:*", "@halo-dev/richtext-editor": "^0.0.0-alpha.11", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3161a7b..d5944e25 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ importers: '@formkit/themes': ^1.0.0-beta.11 '@formkit/utils': ^1.0.0-beta.11 '@formkit/vue': ^1.0.0-beta.11 - '@halo-dev/api-client': ^0.0.50 + '@halo-dev/api-client': ^0.0.51 '@halo-dev/components': workspace:* '@halo-dev/console-shared': workspace:* '@halo-dev/richtext-editor': ^0.0.0-alpha.11 @@ -104,7 +104,7 @@ importers: '@formkit/themes': 1.0.0-beta.12-e579559_tailwindcss@3.2.4 '@formkit/utils': 1.0.0-beta.12-e579559 '@formkit/vue': 1.0.0-beta.12-e579559_ior6jr3fpijijuwpr34w2i25va - '@halo-dev/api-client': 0.0.50 + '@halo-dev/api-client': 0.0.51 '@halo-dev/components': link:packages/components '@halo-dev/console-shared': link:packages/shared '@halo-dev/richtext-editor': 0.0.0-alpha.11_vue@3.2.45 @@ -1970,8 +1970,8 @@ packages: - windicss dev: false - /@halo-dev/api-client/0.0.50: - resolution: {integrity: sha512-/bf/zv/27Pk2dpyozKeEjFkNy5P5ecGX2064WA2oQVHV8sK0UeCRrzDKQ/bIHrHJWaP9aBAN29fE9ocBXoJMeg==} + /@halo-dev/api-client/0.0.51: + resolution: {integrity: sha512-kvwhTogmVVLNwfbAVSNUC+pYt7YXn+eaOD0/5N11BmJ+2pHQUSUKjtPwOF+U+KkQ8hRGmFxHD2XvnrcCOr4XHQ==} dev: false /@halo-dev/richtext-editor/0.0.0-alpha.11_vue@3.2.45: diff --git a/src/modules/contents/attachments/AttachmentList.vue b/src/modules/contents/attachments/AttachmentList.vue index 05a047a3..71ce03d2 100644 --- a/src/modules/contents/attachments/AttachmentList.vue +++ b/src/modules/contents/attachments/AttachmentList.vue @@ -208,12 +208,16 @@ const onDetailModalClose = () => { selectedAttachment.value = undefined; nameQuery.value = undefined; nameQueryAttachment.value = undefined; - handleFetchAttachments(); + setTimeout(() => { + handleFetchAttachments(); + }, 200); }; const onUploadModalClose = () => { routeQueryAction.value = undefined; - handleFetchAttachments(); + setTimeout(() => { + handleFetchAttachments(); + }, 200); }; const onGroupChange = () => { diff --git a/src/modules/contents/attachments/components/AttachmentGroupList.vue b/src/modules/contents/attachments/components/AttachmentGroupList.vue index b7957ba9..8f78feee 100644 --- a/src/modules/contents/attachments/components/AttachmentGroupList.vue +++ b/src/modules/contents/attachments/components/AttachmentGroupList.vue @@ -57,7 +57,7 @@ const defaultGroups: Group[] = [ apiVersion: "", kind: "", metadata: { - name: "none", + name: "ungrouped", }, }, ]; @@ -68,7 +68,7 @@ const groupToUpdate = ref(null); const loading = ref(false); const editingModal = ref(false); -const routeQuery = useRouteQuery("group"); +const routeQuery = useRouteQuery("group"); const handleSelectGroup = (group: Group) => { emit("update:selectedGroup", group); @@ -166,7 +166,8 @@ const handleDeleteWithAttachments = (group: Group) => { watch( () => groups.value.length, () => { - const groupIndex = groups.value.findIndex( + const allGroups = [...defaultGroups, ...groups.value]; + const groupIndex = allGroups.findIndex( (group) => group.metadata.name === routeQuery.value ); @@ -186,8 +187,8 @@ onMounted(async () => { ); if (group) { handleSelectGroup(group); + return; } - return; } handleSelectGroup(defaultGroups[0]); diff --git a/src/modules/contents/attachments/composables/use-attachment.ts b/src/modules/contents/attachments/composables/use-attachment.ts index 33792bde..a3e479c1 100644 --- a/src/modules/contents/attachments/composables/use-attachment.ts +++ b/src/modules/contents/attachments/composables/use-attachment.ts @@ -82,6 +82,7 @@ export function useAttachmentControl(filterOptions?: { policy: policy?.value?.metadata.name, displayName: keyword?.value, group: group?.value?.metadata.name, + ungrouped: group?.value?.metadata.name === "ungrouped", uploadedBy: user?.value?.metadata.name, page: attachments.value.page, size: attachments.value.size,