feat(ui): тип лица полными словами, зелёные дни недели, скрытие банк-реквизитов у физлица
Accessibility (Pa11y live) / a11y (push) Waiting to run
SAST — Semgrep / Semgrep SAST scan (push) Waiting to run

- Настройки→Реквизиты и диалог проекта: «Физлицо»→«Физическое лицо», «Юрлицо»→«Юридическое лицо» (ключи value не тронуты)
- У физлица скрыт блок «Реквизиты для оплаты» (банковских реквизитов нет; оплата по счёту — только для юр/ИП)
- Диалог проекта: выбранные дни недели залиты зелёным #0f6e56 как в ProjectDetailsDrawer

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-06-29 13:22:09 +03:00
parent 093cc8729b
commit 253d1b7f39
2 changed files with 23 additions and 7 deletions
@@ -276,7 +276,13 @@
<div class="mt-3">
<span class="text-caption">Дни недели приёма</span>
<v-btn-toggle v-model="selectedDays" multiple density="comfortable" class="mt-1">
<v-btn-toggle
v-model="selectedDays"
multiple
density="comfortable"
class="mt-1 day-toggle"
selected-class="day-active"
>
<v-btn v-for="(day, i) in dayLabels" :key="i" :value="i">{{ day }}</v-btn>
</v-btn-toggle>
<div class="mt-1">
@@ -436,9 +442,9 @@ const reqSaving = ref(false);
const reqGeneralError = ref<string | null>(null);
const subjectTypeItems = [
{ value: 'individual', title: 'Физлицо' },
{ value: 'individual', title: 'Физическое лицо' },
{ value: 'sole_proprietor', title: 'ИП' },
{ value: 'legal_entity', title: 'Юрлицо' },
{ value: 'legal_entity', title: 'Юридическое лицо' },
];
// Зеркало RequisitesService::isLightComplete — тип лица + имя + телефон (+ ИНН для юр/ИП).
@@ -767,4 +773,12 @@ defineExpose({
border-color: currentColor;
opacity: 1;
}
/* Выбранные дни недели — сплошная зелёная заливка, как в ProjectDetailsDrawer (.pdd-day.active) */
.day-toggle :deep(.v-btn.day-active) {
background-color: #0f6e56;
color: #fff;
}
.day-toggle :deep(.v-btn.day-active .v-btn__overlay) {
opacity: 0;
}
</style>
@@ -37,9 +37,9 @@ const lookupMessage = ref('');
const lookupError = ref(false);
const subjectTypes = [
{ value: 'individual', label: 'Физлицо' },
{ value: 'individual', label: 'Физическое лицо' },
{ value: 'sole_proprietor', label: 'ИП' },
{ value: 'legal_entity', label: 'Юрлицо' },
{ value: 'legal_entity', label: 'Юридическое лицо' },
];
const requiresInn = computed(
@@ -49,8 +49,10 @@ const requiresInn = computed(
const isLegalEntity = computed(() => form.subject_type === 'legal_entity');
const isSoleProprietor = computed(() => form.subject_type === 'sole_proprietor');
// Блок платёжных реквизитов виден, как только выбран тип лица.
const showPayment = computed(() => form.subject_type !== null);
// Блок платёжных реквизитов виден для ИП и юрлица; у физлица банковских реквизитов нет.
const showPayment = computed(
() => form.subject_type !== null && form.subject_type !== 'individual',
);
// КПП только юрлицо; ОГРН/ОГРНИП и юр.адрес юрлицо и ИП; банк всегда (когда showPayment).
const showKpp = computed(() => isLegalEntity.value);
const showOgrn = computed(() => isLegalEntity.value || isSoleProprietor.value);