From 6c0a6f4a27adc72b141ab21693c23787239bfc0b Mon Sep 17 00:00:00 2001 From: RedrockJS Date: Wed, 9 Jul 2025 09:43:37 +0300 Subject: [PATCH] feat: add expertise category page --- src/app/ekspertiza/page.tsx | 4 +- src/views/expertise/category/index.ts | 1 + .../expertise/category/model/breadcrums.ts | 14 ++++ src/views/expertise/category/model/links.ts | 30 ++++++++ .../expertise/category/styles.module.scss | 68 +++++++++++++++++++ src/views/expertise/category/ui.tsx | 49 +++++++++++++ src/views/index.ts | 1 + 7 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 src/views/expertise/category/index.ts create mode 100644 src/views/expertise/category/model/breadcrums.ts create mode 100644 src/views/expertise/category/model/links.ts create mode 100644 src/views/expertise/category/styles.module.scss create mode 100644 src/views/expertise/category/ui.tsx diff --git a/src/app/ekspertiza/page.tsx b/src/app/ekspertiza/page.tsx index e5a2d4e..4c98335 100644 --- a/src/app/ekspertiza/page.tsx +++ b/src/app/ekspertiza/page.tsx @@ -1,3 +1,5 @@ +import { ExpertiseCategory } from '@/views'; + export default function ExpertizaPage() { - return
Expertiza
; + return ; } diff --git a/src/views/expertise/category/index.ts b/src/views/expertise/category/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/views/expertise/category/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/views/expertise/category/model/breadcrums.ts b/src/views/expertise/category/model/breadcrums.ts new file mode 100644 index 0000000..2c12d12 --- /dev/null +++ b/src/views/expertise/category/model/breadcrums.ts @@ -0,0 +1,14 @@ +import { ROUTES } from '@shared/const/route'; + +export const PAGE_NAME = 'Экспертиза'; + +export const breadcrumbData = [ + { + name: 'Экспертиза', + path: ROUTES.EXPERTIZA, + }, + { + name: PAGE_NAME, + path: '', + }, +]; diff --git a/src/views/expertise/category/model/links.ts b/src/views/expertise/category/model/links.ts new file mode 100644 index 0000000..8080d65 --- /dev/null +++ b/src/views/expertise/category/model/links.ts @@ -0,0 +1,30 @@ +import { ROUTES } from '@shared/const/route'; + +export const linksData = { + blockA: [ + { name: 'Автотехническая', link: ROUTES.EXPERTIZA_AUTOTECH }, + { name: 'Трасологическая', link: ROUTES.EXPERTIZA_TRASOLOGIA }, + { name: 'Оценочная', link: ROUTES.EXPERTIZA_OCENKI }, + { name: 'Пожарно-техническая', link: ROUTES.EXPERTIZA_POZHAR }, + { name: 'Товароведческая', link: ROUTES.EXPERTIZA_TOVAR }, + { + name: 'Рецензирование и проверка экспертизы', + link: ROUTES.EXPERTIZA_RECENZII, + }, + ], + blockB: [ + { name: 'Документарная', link: ROUTES.EXPERTIZA_DOCUMENT }, + { name: 'Бухгалтерская', link: ROUTES.EXPERTIZA_BUHGALTER }, + { name: 'Финансово-экономическая', link: ROUTES.EXPERTIZA_FINANS }, + { name: 'Земле-устроительная', link: ROUTES.EXPERTIZA_ZEM_STROY }, + { name: 'Кадастровая', link: ROUTES.EXPERTIZA_KADASTR }, + { name: 'Строительно-техническая', link: ROUTES.EXPERTIZA_STROIT }, + ], + blockC: [ + { name: 'Компьютерно-техническая', link: ROUTES.EXPERTIZA_COPMPUTER }, + { name: 'Почерковедческая', link: ROUTES.EXPERTIZA_POCHERK }, + { name: 'Судебно-биологическая', link: undefined }, + { name: 'Судебно-психологическая', link: undefined }, + { name: 'Технико-криминалистическая', link: ROUTES.EXPERTIZA_TECH_CRIM }, + ], +}; diff --git a/src/views/expertise/category/styles.module.scss b/src/views/expertise/category/styles.module.scss new file mode 100644 index 0000000..6f9a0db --- /dev/null +++ b/src/views/expertise/category/styles.module.scss @@ -0,0 +1,68 @@ +.Container { + margin: 0 auto; + max-width: rem(1540px); + display: flex; + flex-direction: column; + gap: 0px; + padding: 10px; + + @include iftablet { + padding: 20px; + } + + @include iflaptop { + padding: 28px; + } + + @include ifdesktop { + padding: 40px; + } +} + +.Header { + font-family: $font-roboto; + font-weight: 500; + font-size: 32px; + line-height: 130%; + color: $color-text; + margin-bottom: 40px; +} + +.Grid { + display: grid; + grid-template-columns: auto; + + @include iftablet { + grid-template-columns: repeat(3, 1fr); + } +} + +.Block { + display: block; + + .List { + display: flex; + flex-direction: column; + gap: 10px; + list-style-type: disc; + margin-left: 16px; + } + + .ListItem { + font-family: $font-roboto; + font-weight: 400; + font-size: 16px; + line-height: 130%; + color: $color-text; + list-style: unset; + + a { + color: $color-green; + } + + a:hover { + color: $color-green-hover; + text-decoration: underline; + } + } +} diff --git a/src/views/expertise/category/ui.tsx b/src/views/expertise/category/ui.tsx new file mode 100644 index 0000000..f86f87c --- /dev/null +++ b/src/views/expertise/category/ui.tsx @@ -0,0 +1,49 @@ +import s from './styles.module.scss'; +import { breadcrumbData } from './model/breadcrums'; +import { Breadcrumbs } from '@/widgets'; +import Link from 'next/link'; +import { Partners } from '@/feature/article'; +import { linksData } from './model/links'; + +function ExpertiseCategory() { + return ( + <> + +
+

Судебная экспертиза

+
+
+
    + {linksData.blockA.map(({ name, link }, index) => ( +
  • + {link ? {name} : name} +
  • + ))} +
+
+
+
    + {linksData.blockB.map(({ name, link }, index) => ( +
  • + {link ? {name} : name} +
  • + ))} +
+
+
+
    + {linksData.blockC.map(({ name, link }, index) => ( +
  • + {link ? {name} : name} +
  • + ))} +
+
+
+
+ + + ); +} + +export { ExpertiseCategory }; diff --git a/src/views/index.ts b/src/views/index.ts index 6f8ffea..d4ab4c5 100644 --- a/src/views/index.ts +++ b/src/views/index.ts @@ -1,6 +1,7 @@ export * from './home'; //Expertise +export * from './expertise/category'; export * from './expertise/autotech'; export * from './expertise/buhgalter'; export * from './expertise/computer';