fix: 统一知识库卡片布局

- FAQ 与文档知识库统一使用标题下方类型标签

- 同排卡片底部操作栏保持贴底对齐
This commit is contained in:
2026-07-23 16:10:09 +08:00
parent 5a42826d44
commit ebfd91eeab
3 changed files with 40 additions and 1 deletions

View File

@@ -22,6 +22,7 @@ import { $t } from '#/locales';
export type ActionPlacement = 'inline' | 'menu';
export type ActionTone = 'danger' | 'default';
export type TagLayout = 'inline' | 'stacked';
export interface ActionButton {
icon?: any;
@@ -60,6 +61,7 @@ export interface CardListProps {
data: any[];
primaryAction?: CardPrimaryAction;
tagField?: string;
tagLayout?: TagLayout;
tagMap?: Record<string, string>;
}
@@ -73,6 +75,7 @@ const props = withDefaults(defineProps<CardListProps>(), {
cornerTagTypeMap: () => ({}),
primaryAction: undefined,
tagField: '',
tagLayout: 'inline',
tagMap: () => ({}),
});
@@ -205,7 +208,10 @@ function resolveMetaItems(item: any) {
:size="44"
/>
<div class="card-meta">
<div class="title-row">
<div
class="title-row"
:class="{ 'title-row--stacked': tagLayout === 'stacked' }"
>
<ElText truncated size="large" class="card-title">
{{ item[titleField] }}
</ElText>
@@ -371,6 +377,8 @@ function resolveMetaItems(item: any) {
}
.card-item {
display: flex;
flex-direction: column;
background: hsl(var(--card));
border: 1px solid hsl(var(--border));
border-radius: 18px;
@@ -400,6 +408,7 @@ function resolveMetaItems(item: any) {
}
:deep(.el-card__body) {
flex: 1;
padding: 18px;
}
@@ -447,6 +456,15 @@ function resolveMetaItems(item: any) {
min-width: 0;
}
.title-row--stacked {
flex-direction: column;
align-items: flex-start;
}
.title-row--stacked .card-title {
max-width: 100%;
}
.card-title {
font-weight: 600;
color: hsl(var(--text-strong));