Dev #1

Merged
redrockjs merged 66 commits from dev into main 2025-12-11 08:37:11 +00:00
32 changed files with 356 additions and 8 deletions
Showing only changes of commit f81e7978b6 - Show all commits

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,3 +1,5 @@
import { AutoDlyaSuda } from '@/views';
export default function Page() { export default function Page() {
return <div>Page</div>; return <AutoDlyaSuda />;
} }

View File

@@ -11,7 +11,7 @@
padding: 0 20px; padding: 0 20px;
} }
@include iflaptop { @include iflaptop {
grid-template-columns: auto 300px; grid-template-columns: auto 240px;
gap: 40px; gap: 40px;
padding: 0 28px; padding: 0 28px;
} }
@@ -25,6 +25,35 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.Accreditation {
display: none;
@include iflaptop {
display: flex;
flex-direction: column;
align-items: center;
}
.Title {
font-family: $font-roboto;
font-weight: 300;
font-size: 16px;
line-height: 130%;
color: $color-text-light;
margin-bottom: 20px;
}
.Image {
width: 100%;
height: auto;
@include ifdesktop{
max-width: 260px;
}
}
}
} }
.Header { .Header {
@@ -42,7 +71,7 @@
gap: 16px; gap: 16px;
margin-bottom: 20px; margin-bottom: 20px;
@include iftablet{ @include iftablet {
grid-template-columns: auto auto; grid-template-columns: auto auto;
} }

View File

@@ -2,6 +2,10 @@ import s from './styles.module.scss';
import Link from 'next/link'; import Link from 'next/link';
import { TRelatedArticles } from '@shared/types/relatedArticles'; import { TRelatedArticles } from '@shared/types/relatedArticles';
import { CallbackForm } from '@/entities'; import { CallbackForm } from '@/entities';
import Image from 'next/image';
import { Icons } from '@shared/ui/icon';
import sberLogo from '@public/images/sberbank_logo.png';
import domclickLogo from '@public/images/domclick_logo.png';
type RelatedArticlesProps = { type RelatedArticlesProps = {
related: TRelatedArticles[]; related: TRelatedArticles[];
@@ -30,7 +34,12 @@ function RelatedArticles({ related, pageName }: RelatedArticlesProps) {
</div> </div>
<CallbackForm pageName={pageName} /> <CallbackForm pageName={pageName} />
</div> </div>
<div /> <div className={s.Accreditation}>
<h4 className={s.Title}> Аккредитованный партнер </h4>
<Image className={s.Image} src={sberLogo} alt='Сбербанк' />
<Icons.Home color={'#666666'} />
<Image className={s.Image} src={domclickLogo} alt='Домклик' />
</div>
</div> </div>
</section> </section>
); );

View File

@@ -100,4 +100,5 @@
} }
} }
} }
} }

View File

@@ -12,6 +12,7 @@ type SidebarProps = { pageName?: string } & TSidebar;
function Sidebar({ function Sidebar({
estimate = '3', estimate = '3',
offer,
relatedTitle, relatedTitle,
related, related,
warrantiesTitle, warrantiesTitle,
@@ -29,10 +30,7 @@ function Sidebar({
<div className={s.Estimation}> <div className={s.Estimation}>
<h4 className={s.Title}>Срок выполнения:</h4> <h4 className={s.Title}>Срок выполнения:</h4>
<p className={s.Estimate}>от {estimate} дней</p> <p className={s.Estimate}>от {estimate} дней</p>
<p className={s.Text}> <p className={s.Text}>{offer}</p>
Наш эксперт свяжется с вами для уточнения обстоятельств дела и
определения точной стоимости.
</p>
<p className={s.Text}>Оставьте заявку или позвоните по телефону</p> <p className={s.Text}>Оставьте заявку или позвоните по телефону</p>
<Button variant={'white'} onClick={openModal}> <Button variant={'white'} onClick={openModal}>
Записаться Записаться

View File

@@ -1,5 +1,6 @@
export type TSidebar = { export type TSidebar = {
estimate: string; estimate: string;
offer: string;
relatedTitle?: string; relatedTitle?: string;
related?: { related?: {
title: string; title: string;

View File

@@ -179,6 +179,26 @@ const BtnPhone = (props: SVGIcon) => (
</svg> </svg>
); );
//HealthiconsHomeOutline
const Home = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns='http://www.w3.org/2000/svg'
width={200}
height={200}
viewBox='0 0 48 48'
{...props}
>
<g fill='currentColor'>
<path d='M24.507 10.138a1 1 0 0 0-1.014 0L5.631 20.645l1.014 1.724L24 12.16l17.355 10.21l1.014-1.724L36 16.9V12a1 1 0 0 0-1-1h-3a1 1 0 0 0-1 1v1.957zM14 25h11v6H14z'></path>
<path
fillRule='evenodd'
d='m24 14l-14 8v14H5a1 1 0 1 0 0 2h36a1 1 0 1 0 0-2h-3V22zm0 2.303l-12 6.858V36h16V25h6v11h2V23.16z'
clipRule='evenodd'
></path>
</g>
</svg>
);
const Icons = Object.assign( const Icons = Object.assign(
{}, {},
{ {
@@ -191,6 +211,7 @@ const Icons = Object.assign(
Youtube, Youtube,
MenuArrow, MenuArrow,
BtnPhone, BtnPhone,
Home,
}, },
); );

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -3,6 +3,8 @@ import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = { const sidebarData: TSidebar = {
estimate: '3', estimate: '3',
offer:
'Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости.',
relatedTitle: 'Сопутствующие экспертизы', relatedTitle: 'Сопутствующие экспертизы',
related: [ related: [
{ {

View File

@@ -19,3 +19,4 @@ export * from './expertise/zem-stroy';
//Ocenka //Ocenka
export * from './ocenka/category'; export * from './ocenka/category';
export * from './ocenka/avtomobilja-dlja-suda';

View File

@@ -0,0 +1 @@
export * from './ui';

View File

@@ -0,0 +1,24 @@
const documentsData = {
title: 'Документы, необходимые для оценки:',
description:
'Для установления рыночной стоимости автомобиля специалисты нашей компании попросят вас предоставить следующий пакет документов:',
docs: [
'полный пакет документации на машину;',
'все материалы, проливающие свет на обстоятельства рассматриваемого судом дела (в особенности, если речь идет об автомобиле, участвовавшем в дтп);',
'перечень вопросов, поставленных перед экспертом, с учетом всех нюансов, способных привести к справедливому решению суда.',
],
};
const howToData = {
title: 'Заказать оценку очень просто:',
description:
'Отчет, полученный от компании «ДИ ТРАСО», будет являться официальным документом, подтверждающим рыночную стоимость автомобиля. В нем будет содержаться вся полная информация, а также все качественные и количественные характеристики исследуемого объекта.',
};
const connectData = {
title: 'Заказать оценку автомобиля для суда',
description:
'Для того, чтобы заказать оценку рыночной стоимости автомобиля для суда, вы можете воспользоваться любым удобным способом.',
};
export { documentsData, howToData, connectData };

View File

@@ -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: '',
},
];

View File

@@ -0,0 +1,8 @@
import { TExpert } from '@shared/types/expert';
import expertPhoto from '@public/images/photo/empty-photo.jpg';
export const expertData: TExpert = {
name: 'Иван Иванов',
position: 'Оценщик',
photo: expertPhoto,
};

View File

@@ -0,0 +1,29 @@
import { TRelatedArticles } from '@shared/types/relatedArticles';
import { ROUTES } from '@shared/const/route';
export const relatedArticlesData: TRelatedArticles[] = [
{
title: 'Оценка ущерба в ДТП',
description:
'Целью любой экспертизы после ДТП является определение реального ущерба: определяются детали, требующие замены, высчитывается их рыночная стоимость, калькулируются затраты на проведение ремонтных работ…',
link: ROUTES.OCENKA_DTP,
},
{
title: 'Оценка для нотариуса',
description:
'Процедура оценки для нотариуса необходима с целью определения стоимости имущества для вступления в наследство и других нотариальных действий…',
link: ROUTES.OCENKA_NOTARIUS,
},
{
title: 'Автотехническая экспертиза',
description:
'При возникновении ситуаций, возникающих в результате ДТП (дорожно-транспортных происшествий), для решения наиболее сложных проблем, требуется проведение специальной автоэкспертизы, позволяющей реализовать право водителя на получение страховки…',
link: ROUTES.EXPERTIZA_AUTOTECH,
},
{
title: 'Трасологическая экспертиза',
description:
'Трасологическая экспертиза направленна на установление причастности транспортного средства или прочего имущества/предмета к происшествию…',
link: ROUTES.EXPERTIZA_TRASOLOGIA,
},
];

View File

@@ -0,0 +1,38 @@
import { TSidebar } from '@/shared/types/sidebar';
import { ROUTES } from '@shared/const/route';
const sidebarData: TSidebar = {
estimate: '3',
offer: 'Наши специалисты определят точную стоимость услуги.',
relatedTitle: 'Сопутствующие экспертизы',
related: [
{ title: 'Оценка ущерба в ДТП', link: ROUTES.EXPERTIZA_TRASOLOGIA },
{
title: 'Оценка УТС утраты товарной стоимости',
link: ROUTES.EXPERTIZA_OCENKI,
},
{
title: 'Оценка рыночной стоимости автомобиля',
link: ROUTES.EXPERTIZA_TOVAR,
},
{ title: 'Оценка автомобиля для суда', link: ROUTES.EXPERTIZA_RECENZII },
{
title: 'Оценка мотоциклов и мототехники',
link: ROUTES.EXPERTIZA_RECENZII,
},
{ title: 'Оценка морских и речных судов', link: ROUTES.EXPERTIZA_RECENZII },
{
title: 'Оценка воздушных судов и летательных аппаратов',
link: ROUTES.EXPERTIZA_RECENZII,
},
],
warrantiesTitle: 'Наши гарантии',
warranties: [
'Только дипломированные специалисты',
'Эксперты компании являются членами Саморегулируемой организации оценщиков',
'Деятельность компании застрахована на 60 000 000 рублей',
'Отчеты выполняются в соответствии с Федеральными стандартами оценки и ФЗ 135 «Об оценочной деятельности»',
],
};
export { sidebarData };

View File

@@ -0,0 +1,71 @@
.Container {
margin: 0 auto;
max-width: rem(1540px);
display: grid;
grid-template-columns: auto;
gap: 0px;
padding: 0 10px;
@include iftablet {
grid-template-columns: auto;
padding: 0 20px;
}
@include iflaptop {
padding: 0 28px;
gap: 40px;
grid-template-columns: auto 300px;
}
@include ifdesktop {
grid-template-columns: auto 360px;
gap: 160px;
padding: 0 40px;
}
}
.Article {
display: flex;
flex-direction: column;
padding: rem(40px) 0;
.Section {
display: block;
}
.Text {
font-family: $font-roboto;
font-weight: 400;
font-size: rem(16px);
line-height: 130%;
color: $color-text;
margin-bottom: 16px;
}
.List {
display: flex;
flex-direction: column;
list-style-type: disc;
margin-left: 16px;
margin-bottom: 16px;
}
.ListItem {
font-family: $font-roboto;
font-weight: 300;
font-size: 16px;
line-height: 130%;
color: $color-text;
list-style: unset;
}
.Header {
font-family: $font-roboto;
font-weight: 300;
font-size: 32px;
line-height: 130%;
color: $color-text;
margin-bottom: 16px;
}
}

View File

@@ -0,0 +1,73 @@
import s from './styles.module.scss';
import { CallbackForm, Connect, OrderSchema } from '@/entities';
import {
Consultation,
Documents,
Partners,
RelatedArticles,
Sidebar,
} from '@/feature/article';
import { Breadcrumbs } from '@/widgets';
import { sidebarData } from './model/sidebar';
import { relatedArticlesData } from './model/related';
import { expertData } from './model/expert';
import { breadcrumbData, PAGE_NAME } from './model/breadcrums';
import { connectData, documentsData, howToData } from './model/article';
function AutoDlyaSuda() {
return (
<>
<Breadcrumbs breadcrumbs={breadcrumbData} />
<article className={s.Container}>
<div className={s.Article}>
<section className={s.Section}>
<p className={s.Text}>
Оценка автотранспорта для суда предполагает повышенную
ответственность, затраты времени для посещения судебных заседаний
экспертом-оценщиком.
</p>
<p className={s.Text}>
Эксперты компании готовы защитить интересы клиентов, как при
досудебных разбирательствах, так и на судебных заседаниях.
</p>
<p className={s.Text}>
Качество экспертизы, ее полнота и достоверность, в первую очередь,
зависят от того, насколько четко обозначены в решении суда
вопросы, на которые эксперт должен ответить. Многое зависит также
от полноты документальной базы, предоставляемой эксперту.
</p>
<p className={s.Text}>
Случаи при которых необходима оценка автомобиля для суда
</p>
<ul className={s.List}>
<li className={s.ListItem}>
при разделе имущества в деле о разводе;
</li>
<li className={s.ListItem}>при ДТП;</li>
<li className={s.ListItem}>
в вопросах вступления или оспаривания наследства;
</li>
<li className={s.ListItem}>
когда решаются долговые обязательства;
</li>
<li className={s.ListItem}>
при рассмотрении дел о назначении и выплате алиментов.
</li>
</ul>
</section>
<CallbackForm pageName={PAGE_NAME} />
<Documents {...documentsData} />
<OrderSchema {...howToData} />
<Connect {...connectData} />
</div>
<Sidebar {...sidebarData} pageName={PAGE_NAME} />
</article>
<Consultation {...expertData} pageName={PAGE_NAME} disableExpert />
<RelatedArticles related={relatedArticlesData} pageName={PAGE_NAME} />
<Partners />
</>
);
}
export { AutoDlyaSuda };