diff --git a/src/assets/images/close.png b/src/assets/images/close.png new file mode 100644 index 0000000..e27c7ab Binary files /dev/null and b/src/assets/images/close.png differ diff --git a/src/assets/images/edit.png b/src/assets/images/edit.png new file mode 100644 index 0000000..46605dc Binary files /dev/null and b/src/assets/images/edit.png differ diff --git a/src/assets/images/filter.png b/src/assets/images/filter.png new file mode 100644 index 0000000..8b7c3ef Binary files /dev/null and b/src/assets/images/filter.png differ diff --git a/src/assets/images/loupe.png b/src/assets/images/loupe.png new file mode 100644 index 0000000..e9a225e Binary files /dev/null and b/src/assets/images/loupe.png differ diff --git a/src/components/FilterItem/FilterItem.js b/src/components/FilterItem/FilterItem.js new file mode 100644 index 0000000..312a08b --- /dev/null +++ b/src/components/FilterItem/FilterItem.js @@ -0,0 +1,16 @@ +import React from "react"; + +import arrow from "../../assets/images/select.svg" + +import "./filterItem.scss"; + +const FilterItem = ({title}) => { + return ( +
+

{title}

+ arrow +
+ ); +}; + +export default FilterItem; diff --git a/src/components/FilterItem/filterItem.scss b/src/components/FilterItem/filterItem.scss new file mode 100644 index 0000000..bad7771 --- /dev/null +++ b/src/components/FilterItem/filterItem.scss @@ -0,0 +1,11 @@ +.filterItem { + display: flex; + column-gap: 8px; + padding: 5px 10px; + border-radius: 5px; + background-color: white; + align-items: center; + cursor: pointer; + width: 150px; + justify-content: space-between; +} diff --git a/src/pages/Home/Home.js b/src/pages/Home/Home.js index 768cfbf..fc69622 100644 --- a/src/pages/Home/Home.js +++ b/src/pages/Home/Home.js @@ -1,16 +1,119 @@ import React from "react"; import BreadCrumbs from "../../components/BreadCrumbs/BreadCrumbs"; +import FilterItem from "../../components/FilterItem/FilterItem"; + +import loupe from "../../assets/images/loupe.png" +import filterImg from "../../assets/images/filter.png" +import cross from "../../assets/images/close.png" +import edit from "../../assets/images/edit.png" +import arrow from "../../assets/images/select.svg" import "./home.scss" const Home = () => { + const filterItems = ["Товарная группа", "Статус аукциона", "Новая заявка", "Выбрать период"] + const pagesMock = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + const auctionItems = [ + { + number: 324, + name: 'Аукцион на закупку в интересах компании ООО "Фабрика"', + receptionDate: '17.04.23-18.04.23', + startDate: '18.04.23', + status: 'Черновик' + }, + { + number: 323, + name: 'Аукцион на закупку в интересах компании ООО "Пресс"', + receptionDate: '17.04.23-18.04.23', + startDate: '18.04.23', + status: 'Сбор заявок' + }, + { + number: 322, + name: 'Аукцион на закупку в интересах компании ООО "Компания"', + receptionDate: '17.04.23-18.04.23', + startDate: '18.04.23', + status: 'Идут торги' + }, + { + number: 321, + name: 'Аукцион на закупку в интересах компании ООО "Кот"', + receptionDate: '17.04.23-18.04.23', + startDate: '18.04.23', + status: 'В архиве' + }, + ] return (

Аукционы

+
+
+ +
+ + loupe +
+
+
+ filter +
+ {filterItems.map((item) => { + return + })} +
+ + +
+
+ + + + + + + + + + + + {auctionItems.map((item) => { + return + + + + + + + + })} + +
Название аукционаПрием заявокПроведениеСтатус
{item.number}{item.name}{item.receptionDate}{item.startDate}{item.status} + edit +
+
+ arrow + {pagesMock.slice(0, 5).map((item) => { + return

{item}

+ })} + {pagesMock.length > 5 && + <> + ... +

{pagesMock.length}

+ + } + arrow +
+
+
); }; diff --git a/src/pages/Home/home.scss b/src/pages/Home/home.scss index d575d57..e5929ff 100644 --- a/src/pages/Home/home.scss +++ b/src/pages/Home/home.scss @@ -1,5 +1,188 @@ .home { + width: 100%; + padding-bottom: 100px; &__title { font-size: 40px; } + + &__info { + width: 100%; + margin: 35px 0; + display: flex; + flex-direction: column; + row-gap: 15px; + + .info { + &__top { + display: flex; + justify-content: space-between; + + button { + background-color: #b6b6b6; + color: white; + cursor: pointer; + padding: 10px 20px; + border-radius: 8px; + border: none; + } + } + + &__search { + display: flex; + padding: 5px 10px; + border-radius: 8px; + border: 2px solid gray; + max-width: 300px; + width: 100%; + align-items: center; + + input { + border: none; + width: 100%; + outline: none; + } + + img { + width: 18px; + height: 18px; + } + } + + &__filters { + display: flex; + padding: 10px 15px; + background-color: #e6e6e6; + align-items: center; + justify-content: space-between; + + &Img { + width: 20px; + height: 20px; + } + + &__items { + display: flex; + column-gap: 10px; + } + + button { + outline: none; + display: flex; + align-items: center; + color: white; + font-size: 17px; + padding: 7px 10px; + border-radius: 5px; + max-width: 200px; + border: none; + width: 100%; + cursor: pointer; + column-gap: 8px; + justify-content: center; + + img { + width: 17px; + height: 17px; + } + } + + .filter { + &__reset { + background-color: darkgrey; + } + + &__confirm { + background-color: gray; + } + } + } + &__tableWrapper { + + .tableItem { + padding: 10px; + border: 1px solid #cbcbcb; + + &__name { + font-weight: 700; + } + + .center { + text-align: center; + } + + &__edit { + display: flex; + cursor: pointer; + align-items: center; + justify-content: center; + img { + width: 15px; + height: 15px; + } + } + } + table { + width: 100%; + font-size: 15px; + font-weight: 500; + display: flex; + flex-direction: column; + row-gap: 10px; + + thead { + display: grid; + + tr { + display: grid; + grid-template-columns: 7% 50% 16% 12% 10% 5%; + } + } + + tbody { + display: grid; + row-gap: 10px; + + tr { + display: grid; + grid-template-columns: 7% 50% 16% 12% 10% 5%; + } + } + } + + .table { + &__pages { + display: flex; + margin-top: 15px; + column-gap: 8px; + align-items: center; + + p { + cursor: pointer; + border-radius: 5px; + font-weight: 600; + } + + .active { + color: white; + padding: 3px 7px; + background-color: #1d3bff; + } + + img { + width: 20px; + height: 20px; + cursor: pointer; + } + .prev { + transform: rotate(90deg); + } + + .next { + transform: rotate(-90deg); + } + } + } + } + } + } }