Dev #1
8
.idea/.gitignore
generated
vendored
8
.idea/.gitignore
generated
vendored
@@ -1,8 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
6
.idea/compiler.xml
generated
6
.idea/compiler.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="TypeScriptCompiler">
|
|
||||||
<option name="useTypesFromServer" value="true" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
.idea/prettier.xml
generated
Normal file
6
.idea/prettier.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="PrettierConfiguration">
|
||||||
|
<option name="myConfigurationMode" value="AUTOMATIC" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
4
.idea/watcherTasks.xml
generated
4
.idea/watcherTasks.xml
generated
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectTasksOptions" suppressed-tasks="SCSS" />
|
|
||||||
</project>
|
|
||||||
96
.idea/workspace.xml
generated
Normal file
96
.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AutoImportSettings">
|
||||||
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
|
</component>
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="2a96f817-9dc2-4f3c-893a-c4974c750774" name="Changes" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/watcherTasks.xml" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/views/home/styles.module.scss" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/home/styles.module.scss" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/views/home/ui.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/home/ui.tsx" afterDir="false" />
|
||||||
|
</list>
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="DarkyenusTimeTracker">
|
||||||
|
<option name="totalTimeSeconds" value="160544" />
|
||||||
|
<option name="gitIntegration" value="true" />
|
||||||
|
<option name="naggedAbout" value="1" />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectColorInfo">{
|
||||||
|
"customColor": "",
|
||||||
|
"associatedIndex": 4
|
||||||
|
}</component>
|
||||||
|
<component name="ProjectId" id="35jvwBqGA9zlZwQ6LZmQZbbmwbc" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
|
"keyToString": {
|
||||||
|
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||||||
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
|
"RunOnceActivity.git.unshallow": "true",
|
||||||
|
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
|
||||||
|
"git-widget-placeholder": "dev",
|
||||||
|
"ignore.virus.scanning.warn.message": "true",
|
||||||
|
"js.debugger.nextJs.config.created.client": "true",
|
||||||
|
"js.debugger.nextJs.config.created.server": "true",
|
||||||
|
"junie.onboarding.icon.badge.shown": "true",
|
||||||
|
"node.js.detected.package.eslint": "true",
|
||||||
|
"node.js.detected.package.tslint": "true",
|
||||||
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
|
"nodejs_package_manager_path": "npm",
|
||||||
|
"npm.Next.js: server-side.executor": "Run",
|
||||||
|
"to.speed.mode.migration.done": "true",
|
||||||
|
"ts.external.directory.path": "C:\\dev-personal\\ocenka-web\\node_modules\\typescript\\lib",
|
||||||
|
"vue.rearranger.settings.migration": "true"
|
||||||
|
}
|
||||||
|
}]]></component>
|
||||||
|
<component name="RunManager" selected="npm.Next.js: server-side">
|
||||||
|
<configuration name="Next.js: debug client-side" type="JavascriptDebugType" uri="http://localhost:3000/">
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="Next.js: server-side" type="js.build_tools.npm">
|
||||||
|
<package-json value="$PROJECT_DIR$/package.json" />
|
||||||
|
<command value="run" />
|
||||||
|
<scripts>
|
||||||
|
<script value="dev" />
|
||||||
|
</scripts>
|
||||||
|
<node-interpreter value="project" />
|
||||||
|
<envs />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
|
<component name="SharedIndexes">
|
||||||
|
<attachedChunks>
|
||||||
|
<set>
|
||||||
|
<option value="bundled-js-predefined-d6986cc7102b-3aa1da707db6-JavaScript-WS-252.27397.92" />
|
||||||
|
</set>
|
||||||
|
</attachedChunks>
|
||||||
|
</component>
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="2a96f817-9dc2-4f3c-893a-c4974c750774" name="Changes" comment="" />
|
||||||
|
<created>1763636886190</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1763636886190</updated>
|
||||||
|
<workItem from="1763636887488" duration="5508000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
package-lock.json
generated
8
package-lock.json
generated
@@ -14,7 +14,7 @@
|
|||||||
"@maskito/react": "^3.9.1",
|
"@maskito/react": "^3.9.1",
|
||||||
"libphonenumber-js": "^1.12.9",
|
"libphonenumber-js": "^1.12.9",
|
||||||
"next": "15.5.2",
|
"next": "15.5.2",
|
||||||
"nodemailer": "^7.0.5",
|
"nodemailer": "7.0.7",
|
||||||
"react": "19.1.1",
|
"react": "19.1.1",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.1.1",
|
||||||
"react-hook-form": "^7.60.0",
|
"react-hook-form": "^7.60.0",
|
||||||
@@ -4535,9 +4535,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/nodemailer": {
|
"node_modules/nodemailer": {
|
||||||
"version": "7.0.5",
|
"version": "7.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.7.tgz",
|
||||||
"integrity": "sha512-nsrh2lO3j4GkLLXoeEksAMgAOqxOv6QumNRVQTJwKH4nuiww6iC2y7GyANs9kRAxCexg3+lTWM3PZ91iLlVjfg==",
|
"integrity": "sha512-jGOaRznodf62TVzdyhKt/f1Q/c3kYynk8629sgJHpRzGZj01ezbgMMWJSAjHADcwTKxco3B68/R+KHJY2T5BaA==",
|
||||||
"license": "MIT-0",
|
"license": "MIT-0",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0.0"
|
"node": ">=6.0.0"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"@maskito/react": "^3.9.1",
|
"@maskito/react": "^3.9.1",
|
||||||
"libphonenumber-js": "^1.12.9",
|
"libphonenumber-js": "^1.12.9",
|
||||||
"next": "15.5.2",
|
"next": "15.5.2",
|
||||||
"nodemailer": "^7.0.5",
|
"nodemailer": "7.0.7",
|
||||||
"react": "19.1.1",
|
"react": "19.1.1",
|
||||||
"react-dom": "19.1.1",
|
"react-dom": "19.1.1",
|
||||||
"react-hook-form": "^7.60.0",
|
"react-hook-form": "^7.60.0",
|
||||||
|
|||||||
@@ -33,23 +33,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.Container {
|
|
||||||
position: relative;
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: rem(1540px);
|
|
||||||
padding: 40px 10px;
|
|
||||||
|
|
||||||
@include iftablet {
|
|
||||||
padding: 40px 20px;
|
|
||||||
}
|
|
||||||
@include iflaptop {
|
|
||||||
padding: 40px 28px;
|
|
||||||
}
|
|
||||||
@include ifdesktop {
|
|
||||||
padding: 40px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.Row {
|
.Row {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: auto;
|
grid-template-columns: auto;
|
||||||
@@ -165,4 +148,87 @@
|
|||||||
color: $color-text;
|
color: $color-text;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.Service {
|
||||||
|
position: relative;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: rem(1540px);
|
||||||
|
padding: 40px 10px;
|
||||||
|
|
||||||
|
@include iftablet {
|
||||||
|
padding: 40px 20px;
|
||||||
|
}
|
||||||
|
@include iflaptop {
|
||||||
|
padding: 40px 28px;
|
||||||
|
}
|
||||||
|
@include ifdesktop {
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Title {
|
||||||
|
font-family: $font-roboto;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32px;
|
||||||
|
line-height: 100%;
|
||||||
|
color: $color-text;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: rem(40px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.Switcher {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid $color-green;
|
||||||
|
border-radius: rem(20px);
|
||||||
|
margin-bottom: rem(40px);
|
||||||
|
|
||||||
|
.Button {
|
||||||
|
box-sizing: border-box;
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: rem(18px);
|
||||||
|
color: $color-green;
|
||||||
|
text-transform: uppercase;
|
||||||
|
|
||||||
|
&_active {
|
||||||
|
background-color: $color-green;
|
||||||
|
color: $color-white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.Grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(4, 1fr);
|
||||||
|
gap: rem(20px);
|
||||||
|
|
||||||
|
.Tile {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: rem(24px);
|
||||||
|
border: 1px solid $color-green;
|
||||||
|
padding: rem(20px) rem(40px);
|
||||||
|
border-radius: rem(20px);
|
||||||
|
//box-shadow: 4px 0px 10px 0px rgba(0,146,131,0.5);
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
font-family: $font-roboto;
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: rem(16px);
|
||||||
|
line-height: 100%;
|
||||||
|
color: $color-green;
|
||||||
|
text-align: center;
|
||||||
|
&:hover {
|
||||||
|
box-shadow: 4px 4px 10px 0px rgba(0,146,131,0.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,8 @@ import Image from 'next/image';
|
|||||||
import { Button, Icons, PartnersSlider } from '@shared/ui';
|
import { Button, Icons, PartnersSlider } from '@shared/ui';
|
||||||
import bg from '@public/images/bg-main.jpg';
|
import bg from '@public/images/bg-main.jpg';
|
||||||
import lines from '@public/images/bg-lines.png';
|
import lines from '@public/images/bg-lines.png';
|
||||||
|
import clsx from 'clsx';
|
||||||
|
import { ROUTES } from '@shared/const/route';
|
||||||
|
|
||||||
export default function Main() {
|
export default function Main() {
|
||||||
return (
|
return (
|
||||||
@@ -45,6 +47,24 @@ export default function Main() {
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section className={s.Service}>
|
||||||
|
<h2 className={s.Title}>Выберите услугу</h2>
|
||||||
|
|
||||||
|
<div className={s.Switcher}>
|
||||||
|
<div className={clsx(s.Button, s.Button_active)}>Экспертиза</div>
|
||||||
|
<div className={s.Button}>Оценка</div>
|
||||||
|
<div className={s.Button}>Юрист</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={s.Grid}>
|
||||||
|
{servicesData.expertise.map(({ id, title, icon, url }, i) => (
|
||||||
|
<div key={id} className={s.Tile}>
|
||||||
|
{title}
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section className={s.BottomRow}>
|
<section className={s.BottomRow}>
|
||||||
<div className={s.LeftBlock}>
|
<div className={s.LeftBlock}>
|
||||||
<p className={s.LineTitle}>Остались вопросы?</p>
|
<p className={s.LineTitle}>Остались вопросы?</p>
|
||||||
@@ -57,9 +77,157 @@ export default function Main() {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section className={s.Slider}>
|
<section className={s.Slider}>
|
||||||
<h3 className={s.Title}>Наши клиенты и партнеры</h3>
|
<h2 className={s.Title}>Наши клиенты и партнеры</h2>
|
||||||
<PartnersSlider />
|
<PartnersSlider />
|
||||||
</section>
|
</section>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const servicesData = {
|
||||||
|
expertise: [
|
||||||
|
{
|
||||||
|
id: 0,
|
||||||
|
title: 'Строительно-техническая экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_STROIT,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: 'Автотехническая экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_AUTOTECH,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
title: 'Кадастровая экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_KADASTR,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
title: 'Технико-криминалистическая экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_TECH_CRIM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
title: 'Компьютерно-техническая экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_COPMPUTER,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
title: 'Товароведческая экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_TOVAR,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
title: 'Трасологическая экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_TRASOLOGIA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 7,
|
||||||
|
title: 'Бухгалтерская экспертиза',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.EXPERTIZA_BUHGALTER,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
ocenka: [
|
||||||
|
{
|
||||||
|
id: 0,
|
||||||
|
title: 'Оценка недвижимого имущества',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_NEDVIGA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: 'Оценка движимого имущества',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_RYNOCHNAYA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
title: 'Оценка для наследства',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_NASLEDSTVO,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
title: 'Оценка предприятия, бизнеса',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_BUSINESS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
title: 'Оценка арендной платы',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_ARENDA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
title: 'Оценка для ипотеки',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_IPOTEKA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
title: 'Оценка для нотариуса',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_NOTARIUS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 7,
|
||||||
|
title: 'Оценка машин и оборудования',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.OCENKA_MASHINES,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
jurist: [
|
||||||
|
{
|
||||||
|
id: 0,
|
||||||
|
title: 'Представительство в суде',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.JURIST_PREDSTAVITELSTVO,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: 'Банкротство физических лиц',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.JURIST_BANKROTSTVO,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
title: 'Сопровождение сделок, составление договоров',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.JURIST_SDELKI_DOGOVORA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
title: 'Споры с застройщиком',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.JURIST_ZEM_SPORY,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
title: 'Споры со страховой компанией',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.JURIST_STRAHOVKA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
title: 'Помощь должникам',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.JURIST_DOLZHNIKAM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
title: 'Взыскание долгов с юридических лиц',
|
||||||
|
icon: '',
|
||||||
|
url: ROUTES.JURIST_DOLGI,
|
||||||
|
},
|
||||||
|
{ id: 7, title: 'Споры по ДТП', icon: '', url: ROUTES.JURIST_DTP },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user