1
0

Добавление логики

1. Получения конфигурациия с бека
2. Время закрытия задачи
3. Изменение фронта под новую локигу конфигурации
4. Обновление структуры бд
This commit is contained in:
2026-01-13 09:11:56 +07:00
parent 7449b46091
commit 2d27abc48a
11 changed files with 157 additions and 53 deletions

View File

@@ -52,9 +52,12 @@
<span v-if="card.dateCreate" class="date-create">
Создано: {{ formatDateWithYear(card.dateCreate) }}
</span>
<span v-if="card.dueDate && Number(columnId) !== 4" class="due-date" :class="dueDateStatus">
<span v-if="card.dueDate && Number(columnId) !== doneColumnId" class="due-date" :class="dueDateStatus">
{{ daysLeftText }}
</span>
<span v-if="Number(columnId) === doneColumnId && card.dateClosed" class="date-closed">
Закрыто: {{ closedDateText }}
</span>
</div>
</div>
</template>
@@ -155,9 +158,28 @@ const isAvatarUrl = (value) => {
return value && (value.startsWith('http://') || value.startsWith('https://') || value.startsWith('/'))
}
// Можно ли архивировать (только если колонка 4)
// Форматирование даты закрытия (относительный формат)
const closedDateText = computed(() => {
if (!props.card.dateClosed) return ''
const closed = new Date(props.card.dateClosed)
const today = new Date()
today.setHours(0, 0, 0, 0)
closed.setHours(0, 0, 0, 0)
const daysAgo = Math.round((today - closed) / (1000 * 60 * 60 * 24))
if (daysAgo === 0) return 'Сегодня'
if (daysAgo === 1) return 'Вчера'
if (daysAgo >= 2 && daysAgo <= 4) return `${daysAgo} дня назад`
if (daysAgo >= 5 && daysAgo <= 14) return `${daysAgo} дней назад`
return formatDateWithYear(props.card.dateClosed)
})
// ID колонки "Готово" из конфига
const doneColumnId = window.APP_CONFIG.COLUMN_DONE_ID
// Можно ли архивировать (только если колонка "Готово")
const canArchive = computed(() => {
return Number(props.columnId) === 4
return Number(props.columnId) === doneColumnId
})
const handleArchive = () => {
@@ -297,6 +319,11 @@ const handleArchive = () => {
color: var(--red);
}
.date-closed {
font-size: 11px;
color: var(--green, #00d4aa);
}
.btn-archive-card {
display: none;
align-items: center;