feat(admin): 卡片新建弹窗、标题保存/删除与拖动排序

- 新建卡片改为弹窗输入标题,确认新建/取消关闭,创建后自动选中
- 卡片标题右侧增加「保存」「删除」按钮
- 左侧卡片支持拖拽排序,顺序写入 card.sort 并影响首页卡片顺序
- 标签栏与内容增加间距,卡片列表加拖动手柄与提示
- Playwright 验证:弹窗取消/确认、按钮、拖动后 API 顺序变化
This commit is contained in:
2026-10-31 13:57:34 +08:00
parent 2c126b410c
commit 8d094175fd
4 changed files with 198 additions and 61 deletions
+29 -1
View File
@@ -979,6 +979,7 @@
.admin-tabs {
overflow: visible;
margin-bottom: var(--su-space-5);
}
.admin-create {
@@ -1287,6 +1288,7 @@ a.entry-href:hover {
grid-template-columns: 220px minmax(0, 1fr);
gap: var(--su-space-4);
align-items: start;
margin-top: var(--su-space-4);
}
.cards-side {
@@ -1304,6 +1306,10 @@ a.entry-href:hover {
margin: var(--su-space-2) 0 var(--su-space-3);
}
.cards-side-new > button {
width: 100%;
}
.cards-side-list {
display: flex;
flex-direction: column;
@@ -1313,7 +1319,6 @@ a.entry-href:hover {
.cards-side-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--su-space-2);
padding: var(--su-space-2) var(--su-space-3);
border: none;
@@ -1325,6 +1330,23 @@ a.entry-href:hover {
cursor: pointer;
}
.cards-drag-handle {
flex: none;
color: var(--su-text-placeholder);
font-size: var(--su-font-size-sm);
line-height: 1;
cursor: grab;
}
.cards-side-item.is-dragging {
opacity: 0.45;
}
.cards-side-item.is-over {
outline: 1px dashed var(--su-color-primary);
outline-offset: -1px;
}
.cards-side-item:hover {
background-color: var(--su-bg-card);
}
@@ -1336,6 +1358,7 @@ a.entry-href:hover {
}
.cards-side-title {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@@ -1347,6 +1370,11 @@ a.entry-href:hover {
font-weight: 400;
}
.cards-drag-hint {
display: block;
margin-top: var(--su-space-3);
}
.cards-main {
min-width: 0;
}