优化: drainQueue并发互斥+deep watch指纹+前端打磨
This commit is contained in:
@@ -1508,8 +1508,7 @@ onUnmounted(() => {
|
||||
color: var(--df-accent);
|
||||
border-color: var(--df-accent);
|
||||
}
|
||||
/* 已暂缓状态 badge */
|
||||
.status-deferred { background: rgba(255,193,7,0.15); color: #f0a030; }
|
||||
/* 状态色类已全局化至 components.css,scoped 不重复定义 */
|
||||
|
||||
/* A2[PD-P1-3]:工作流日志「全局事件」标注(次要小字标签) */
|
||||
.global-event-tag {
|
||||
@@ -1561,11 +1560,9 @@ onUnmounted(() => {
|
||||
.task-card:last-child { border-bottom: none; }
|
||||
.task-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
|
||||
.task-title { font-size: 14px; font-weight: 500; color: var(--df-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
.task-status { font-size: 11px; padding: 2px 8px; border-radius: var(--df-radius-xs); }
|
||||
.status-done { background: rgba(100,255,218,0.15); color: var(--df-success); }
|
||||
.task-status { font-size: 11px; padding: 4px 10px; border-radius: var(--df-radius-sm); }
|
||||
/* 状态色类已全局化至 components.css;此处仅保留本视图特有的进度覆盖 */
|
||||
.status-progress { background: var(--df-accent-soft); color: var(--df-accent); }
|
||||
.status-review { background: rgba(255,217,61,0.15); color: var(--df-warning); }
|
||||
.status-todo { background: rgba(90,99,128,0.2); color: var(--df-text-dim); }
|
||||
|
||||
.task-branch {
|
||||
display: flex;
|
||||
|
||||
@@ -865,22 +865,8 @@ onBeforeUnmount(() => {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* ===== 状态/优先级标签 ===== */
|
||||
.status-tag {
|
||||
font-size: 11px; font-weight: 500;
|
||||
padding: 4px 10px;
|
||||
border-radius: var(--df-radius-sm);
|
||||
white-space: nowrap;
|
||||
}
|
||||
.status-todo { background: rgba(90,99,128,0.2); color: var(--df-text-dim); }
|
||||
.status-progress { background: rgba(100,181,246,0.2); color: var(--df-info); }
|
||||
.status-review { background: rgba(255,217,61,0.2); color: var(--df-warning); }
|
||||
.status-done { background: rgba(100,255,218,0.15); color: var(--df-success); }
|
||||
.status-abandoned { background: rgba(255,107,107,0.2); color: var(--df-danger); }
|
||||
/* D-260616-01:7 态新增 — testing(橙警告,近 review 区分)/blocked(红 danger,与 cancelled 区分用实心边框)。配色与 Tasks.vue 一致保持跨视图统一 */
|
||||
.status-testing { background: rgba(255,152,0,0.2); color: #ff9800; }
|
||||
.status-blocked { background: rgba(255,107,107,0.12); color: var(--df-danger); border: 0.5px solid var(--df-danger); }
|
||||
.status-deferred { background: rgba(255,193,7,0.15); color: #f0a030; }
|
||||
/* 状态/优先级标签 — 尺寸/圆角由全局 components.css .status-tag 统一,scoped 不重复定义 */
|
||||
/* 状态色类已全局化至 components.css(scoped 删除,消除漂移) */
|
||||
|
||||
.priority-badge {
|
||||
font-size: 10px; font-weight: 500;
|
||||
|
||||
+7
-3
@@ -825,7 +825,8 @@ function openCreateModal(parent?: TaskRecord) {
|
||||
}
|
||||
|
||||
async function confirmCreate() {
|
||||
if (!newTaskTitle.value.trim() || !newTaskProjectId.value) return
|
||||
if (!newTaskProjectId.value) { alert('请选择项目'); return }
|
||||
if (!newTaskTitle.value.trim()) return
|
||||
submitting.value = true
|
||||
try {
|
||||
const r = await store.createTask({
|
||||
@@ -866,6 +867,10 @@ watch(sortBy, () => {
|
||||
|
||||
// Ctrl+N 新建 / Ctrl+F 搜索(桌面快捷键)
|
||||
function onKeydown(e: KeyboardEvent) {
|
||||
if (e.key === 'Escape' && showCreateModal.value) {
|
||||
showCreateModal.value = false
|
||||
return
|
||||
}
|
||||
if ((e.ctrlKey || e.metaKey) && e.key === 'n') {
|
||||
e.preventDefault()
|
||||
openCreateModal()
|
||||
@@ -1314,12 +1319,11 @@ onUnmounted(() => {
|
||||
}
|
||||
/* 迷你进度条(细条渐变填充,宽度=完成子任务百分比) */
|
||||
.mini-progress {
|
||||
width: 72px;
|
||||
flex: 1;
|
||||
height: 4px;
|
||||
background: var(--df-border);
|
||||
border-radius: var(--df-radius-xs);
|
||||
overflow: hidden;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.mini-progress-fill {
|
||||
height: 100%;
|
||||
|
||||
Reference in New Issue
Block a user