feat: update UI

This commit is contained in:
2026-08-24 08:07:23 +07:00
parent d7e0d81462
commit 8fe5e44f52
41 changed files with 3117 additions and 993 deletions
+16 -7
View File
@@ -18,7 +18,7 @@
<div
v-for="col in columns"
:key="col.status"
class="min-w-[260px] flex-1 rounded-lg bg-slate-100 p-2 dark:bg-slate-800"
class="min-w-[260px] flex-1 rounded-2xl p-2" style="background: var(--canvas)"
@dragover.prevent="dragOverStatus = col.status"
@dragleave="dragOverStatus = null"
@drop.prevent="onDrop(col.status)"
@@ -30,7 +30,8 @@
<div
v-for="task in tasksIn(col.status)"
:key="task.id"
class="mb-2 cursor-pointer rounded-lg border border-slate-200 bg-white p-3 hover:border-blue-500 dark:border-slate-700 dark:bg-slate-900"
class="task-card mb-2 cursor-pointer rounded-xl border p-3"
:style="{ background: 'var(--panel)', borderColor: 'var(--hairline)' }"
:class="{ 'opacity-40': draggingId === task.id }"
:draggable="auth.can('tasks', 'edit')"
@dragstart="onDragStart(task)"
@@ -38,11 +39,11 @@
@click="openEdit(task)"
>
<div style="font-weight: 500">{{ task.title }}</div>
<div v-if="task.description" class="mt-1 truncate text-[0.8rem] text-slate-500 dark:text-slate-400">{{ task.description }}</div>
<div v-if="task.description" class="muted-note mt-1 truncate">{{ task.description }}</div>
<div class="mt-2 flex items-center gap-2 text-[0.8rem]">
<Tag :value="task.priority" :severity="prioritySeverity(task.priority)" />
<span class="text-slate-500 dark:text-slate-400">{{ task.assigneeName ?? 'Unassigned' }}</span>
<span v-if="task.dueDate" class="text-slate-500 dark:text-slate-400">{{ formatDate(task.dueDate) }}</span>
<span class="muted-note">{{ task.assigneeName ?? 'Unassigned' }}</span>
<span v-if="task.dueDate" class="muted-note">{{ formatDate(task.dueDate) }}</span>
</div>
</div>
</div>
@@ -96,7 +97,8 @@ function tasksIn(status: TaskStatus) {
async function load() {
try {
tasks.value = await getTasks(projectId)
const res = await getTasks(projectId, undefined, 1, 100)
tasks.value = res.items
} catch (e) {
toast.add({ severity: 'error', summary: 'Error', detail: errorMessage(e), life: 4000 })
}
@@ -104,7 +106,8 @@ async function load() {
async function loadMembers() {
try {
members.value = (await getMembers(projectId)).map((m) => ({
const res = await getMembers(projectId, 1, 100)
members.value = res.items.map((m) => ({
userId: m.userId,
displayName: m.displayName,
}))
@@ -182,3 +185,9 @@ onMounted(async () => {
await load()
})
</script>
<style scoped>
.task-card:hover {
border-color: var(--primary) !important;
}
</style>