This commit is contained in:
Kseninia Mikhaylova 2024-06-13 14:59:32 +03:00
parent 4f867b832f
commit 37cb46b0ff
2 changed files with 27 additions and 13 deletions

View File

@ -116,6 +116,11 @@ const isModalOpen = useState('modal_open', () => false)
const toggleModal = () => {
isModalOpen.value = !isModalOpen.value
}
const plurals = {
lamelle: { one: 'ламель', few: 'ламели', many: 'ламелей' },
fence: { one: 'cстолб', few: 'столба', many: 'столбов' },
section: { one: 'секция', few: 'секции', many: 'секций' },
}
</script>
<template>
<div class="container py-4">
@ -168,22 +173,24 @@ const toggleModal = () => {
</div>
</div>
<div class="form-row">
<div class="col-span-6 prose">
<div class="col-span-8 prose">
<p>
Забор общей длиной {{ form_state.total_length }} м,
{{ section_count }} секции по {{ form_state.length }} мм
<span class="contents" v-if="form_state.extra_section">
1 дополнительной секцией длинной {{ form_state.extra_section }} мм
</span>.
Забор общей длиной {{ form_state.total_length }}{{'\xa0'}}м,
{{ section_count }}
<Plural :n="section_count" :forms="plurals.section" /> по
{{ form_state.length }}{{'\xa0'}}мм<span class="contents" v-if="form_state.extra_section">
и 1 дополнительная секция длиной {{ form_state.extra_section }}{{'\xa0'}}мм</span>.
</p>
<p>
Всего {{ section_count + ~~(!!form_state.extra_section) + 1 }} столба,
{{ section_count * lamelles_count }} ламелей длинной {{ form_state.length }} мм
Всего {{ section_count + ~~(!!form_state.extra_section) + 1 }}
<Plural :forms="plurals.fence" :n="section_count + ~~(!!form_state.extra_section) + 1" />,
{{ section_count * lamelles_count }}
<Plural :n="section_count * lamelles_count" :forms="plurals.lamelle" />
длиной {{ form_state.length }}{{'\xa0'}}мм
<span class="contents" v-if="form_state.extra_section">
и {{ ~~(!!form_state.extra_section) * lamelles_count }} ламелей длинной {{
form_state.extra_section }} мм
</span>
и {{ ~~(!!form_state.extra_section) * lamelles_count }}
<Plural :n="~~(!!form_state.extra_section) * lamelles_count" :forms="plurals.lamelle" /> длиной {{
form_state.extra_section }}{{'\xa0'}}мм</span>.
</p>
<p>
Все элементы окрашиваются порошковым методом: <br />
@ -191,7 +198,7 @@ const toggleModal = () => {
столбы: {{ getColorNameFromRal(pillar_color)?.toLowerCase() }}.
</p>
</div>
<div class="prose col-span-6">
<div class="prose col-span-4">
<p v-if="form_state.extra_section" class="text-ioprim">
Внимание! Дополнительная секция приводит к увеличению стоимости.
Рекомендуем вам изменить длину забора или длину секции!

7
components/plural.vue Normal file
View File

@ -0,0 +1,7 @@
<script setup lang="ts">
const props = defineProps(['forms', 'n'])
const ruOrdinalRules = new Intl.PluralRules("ru-RU");
</script>
<template>
{{ props.forms[ruOrdinalRules.select(props.n)] }}
</template>