Merge branch 'dev-0.2.1' into dev-0.2

# Conflicts:
#	generated/prisma/internal/class.ts
#	generated/prisma/internal/prismaNamespace.ts
#	generated/prisma/internal/prismaNamespaceBrowser.ts
#	generated/prisma/models/BoardColumn.ts
#	generated/prisma/models/Project.ts
#	generated/prisma/models/ProjectMember.ts
#	generated/prisma/models/Task.ts
#	generated/prisma/models/TaskMember.ts
#	generated/prisma/models/TaskTag.ts
#	generated/prisma/models/User.ts
#	server/routes/projects.js
#	server/routes/tasks.js
#	src/api/task.js
This commit is contained in:
jif2.zhang
2026-10-26 20:46:25 +08:00
95 changed files with 8694 additions and 1609 deletions
+36
View File
@@ -70,6 +70,35 @@ input, textarea, select { font: inherit; }
background: var(--color-bg);
}
/* 离线标识 (0.2.1): 窗口左上角, 仅在离线/服务不可达时出现 */
.offline-badge {
position: fixed;
top: calc(var(--safe-top) + 4px);
left: 6px;
z-index: 120;
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 6px;
border-radius: 999px;
background: rgba(255, 77, 79, 0.12);
border: 1px solid rgba(255, 77, 79, 0.35);
color: #cf1322;
font-size: 10px;
line-height: 1;
font-weight: 600;
pointer-events: none;
user-select: none;
}
.offline-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: #ff4d4f;
box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.18);
}
.offline-text { letter-spacing: 1px; }
.app-main {
flex: 1 1 auto;
min-height: 0;
@@ -718,6 +747,13 @@ body.me-safe-top .app-safe-top { height: 0; }
font-size: 10px; line-height: 1; font-weight: 600; color: #fff;
border-radius: 4px; padding: 3px 5px; flex-shrink: 0; white-space: nowrap;
}
/* 任务编号 (0.2.1): `项目编号-序号`, 服务端分配 */
.num-tag {
display: inline-flex; align-items: center;
font-size: 10px; line-height: 1; font-weight: 600;
color: #5b6b7c; background: #eef2f6; border-radius: 4px; padding: 3px 5px;
flex-shrink: 0; white-space: nowrap; font-variant-numeric: tabular-nums;
}
/* 项目管理: 任务类型编辑 chips */
.kind-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.kind-chip {