6e2ad108de
После правки slepok-чувствительных полей проекта (regions / delivery_days_mask /
daily_limit_target / источник) backend возвращает ProjectResource.applies_from
= N.21:00 МСК (Task 2.11 backend slice, commit dd5954d8). Клиент Лидерры
теперь видит расширенный тост: «Сохранено. Изменения вступят в силу
DD.MM.YYYY в 21:00 МСК.» Когда правка не затронула slepok — обычное
«Сохранено.».
Изменения:
- composables/appliesFromMessage.ts — чистый форматтер (Moscow tz, не локаль клиента).
- ProjectDetailsDrawer / NewProjectDialog / EditProjectDialog — emit('saved', appliesFrom).
- ProjectsView — v-snackbar + onSaved/onDrawerSaved обработчики.
- tests/Frontend/appliesFromMessage.spec.ts — 5 invariant-кейсов.
Plan §Task 2.11 Step 5-6. Spec §4.2.5 UX block. R-15 + R-06..R-08 UX closure.
Vitest worktree-only 944/3sk GREEN, vue-tsc 3 pre-existing errors (вне диффа),
ESLint clean на затронутых файлах.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
21 lines
580 B
Vue
21 lines
580 B
Vue
<template>
|
|
<NewProjectDialog
|
|
:model-value="modelValue"
|
|
mode="edit"
|
|
:project="project"
|
|
@update:model-value="$emit('update:modelValue', $event)"
|
|
@saved="(appliesFrom) => $emit('saved', appliesFrom)"
|
|
/>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import NewProjectDialog from './NewProjectDialog.vue';
|
|
import type { Project } from '../../stores/projectsStore';
|
|
|
|
defineProps<{ modelValue: boolean; project: Project | null }>();
|
|
defineEmits<{
|
|
'update:modelValue': [value: boolean];
|
|
saved: [appliesFrom: string | null];
|
|
}>();
|
|
</script>
|