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