From a051dbacba8889748ce0afc4fdff7665586ae5f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BB=98?= <925456043@qq.com> Date: Fri, 31 Jul 2026 14:34:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E4=B8=8E=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 统一紧凑卡片、完整标题与状态元信息展示 - 移除多余入口指示并将工作流分享操作前置 --- .../app/src/components/page/CardList.vue | 239 ++++++++++++++++-- .../documentCollection/DocumentCollection.vue | 27 +- .../src/views/ai/workflow/WorkflowList.vue | 45 ++-- 3 files changed, 260 insertions(+), 51 deletions(-) diff --git a/easyflow-ui-admin/app/src/components/page/CardList.vue b/easyflow-ui-admin/app/src/components/page/CardList.vue index e353933c..b7050cc5 100644 --- a/easyflow-ui-admin/app/src/components/page/CardList.vue +++ b/easyflow-ui-admin/app/src/components/page/CardList.vue @@ -17,13 +17,17 @@ import { ElIcon, ElTag, ElText, + ElTooltip, } from 'element-plus'; import { $t } from '#/locales'; export type ActionPlacement = 'inline' | 'menu'; export type ActionTone = 'danger' | 'default'; +export type CardDensity = 'compact' | 'default'; +export type MetaLayout = 'compact' | 'stacked'; export type TagLayout = 'inline' | 'stacked'; +export type TagPlacement = 'details' | 'title'; export interface ActionButton { icon?: any; @@ -40,6 +44,8 @@ export interface ActionButton { export interface CardPrimaryAction { icon?: any; + iconOnly?: boolean; + showIndicator?: boolean; text: string; permission?: string; onClick: (row: any) => void; @@ -58,12 +64,16 @@ export interface CardListProps { cornerTagField?: string; cornerTagMap?: Record; cornerTagTypeMap?: Record; + density?: CardDensity; defaultIcon: any; data: any[]; + metaLayout?: MetaLayout; primaryAction?: CardPrimaryAction; tagField?: string; tagLayout?: TagLayout; tagMap?: Record; + tagPlacement?: TagPlacement; + titleLineClamp?: number; } const props = withDefaults(defineProps(), { @@ -74,10 +84,14 @@ const props = withDefaults(defineProps(), { cornerTagField: '', cornerTagMap: () => ({}), cornerTagTypeMap: () => ({}), + density: 'default', + metaLayout: 'stacked', primaryAction: undefined, tagField: '', tagLayout: 'inline', tagMap: () => ({}), + tagPlacement: 'title', + titleLineClamp: 1, }); const { hasAccessByCodes } = useAccess(); @@ -107,6 +121,10 @@ const resolvedPrimaryAction = computed(() => { return props.primaryAction; }); +const showPrimaryActionIndicator = computed( + () => resolvedPrimaryAction.value?.showIndicator !== false, +); + function resolveActionPlacement( action: ActionButton, index: number, @@ -185,6 +203,12 @@ function resolveMetaItems(item: any) { } return metaItems; } + +function resolveMetaAriaLabel(item: any) { + return resolveMetaItems(item) + .map((meta) => `${meta.label}:${meta.value}`) + .join(','); +}