diff --git a/mirzaev/skillparts/system/controllers/PartnersController.php b/mirzaev/skillparts/system/controllers/PartnersController.php
index 2fc30ec..3601332 100644
--- a/mirzaev/skillparts/system/controllers/PartnersController.php
+++ b/mirzaev/skillparts/system/controllers/PartnersController.php
@@ -6,10 +6,13 @@ namespace app\controllers;
use yii\web\Controller;
+use app\models\Terminal;
+
class PartnersController extends Controller
{
public function actionIndex()
{
- return $this->render('/partners/index');
+ $terminals = Terminal::read(500);
+ return $this->render('/partners/index', compact('terminals'));
}
}
diff --git a/mirzaev/skillparts/system/models/Document.php b/mirzaev/skillparts/system/models/Document.php
index 2c26835..7c3a3f5 100644
--- a/mirzaev/skillparts/system/models/Document.php
+++ b/mirzaev/skillparts/system/models/Document.php
@@ -142,12 +142,22 @@ abstract class Document extends ActiveRecord
/**
* Чтение всех записей
+ *
+ * @deprecated
*/
public static function readAll(): array
{
return static::find()->all();
}
+ /**
+ * Чтение записей по максимальному ограничению
+ */
+ public static function read(int $limit = 100): array
+ {
+ return static::find()->limit($limit)->all();
+ }
+
/**
* Чтение количества записей
*/
diff --git a/mirzaev/skillparts/system/views/partners/index.php b/mirzaev/skillparts/system/views/partners/index.php
index 827a008..b24d0c6 100644
--- a/mirzaev/skillparts/system/views/partners/index.php
+++ b/mirzaev/skillparts/system/views/partners/index.php
@@ -1,11 +1,34 @@
+
+
+
+
diff --git a/mirzaev/skillparts/system/web/css/pages/partners.css b/mirzaev/skillparts/system/web/css/pages/partners.css
index e69de29..e4a1e2e 100644
--- a/mirzaev/skillparts/system/web/css/pages/partners.css
+++ b/mirzaev/skillparts/system/web/css/pages/partners.css
@@ -0,0 +1,64 @@
+.wrapper {
+ display: flex;
+ justify-content: space-between;
+}
+
+/* Выбор города */
+.label {
+ text-align: center;
+ font-weight: bold;
+
+ max-width: 240px;
+ width: 100%;
+ padding: 4px 0;
+
+ color: azure;
+ background-color: #123EAB;
+
+ position: fixed;
+}
+
+/* Блок городов */
+.cityShop {
+ width: 240px;
+ height: 400px;
+
+ background-color: #fff;
+
+ overflow-y: scroll;
+
+}
+
+.cityShop::-webkit-scrollbar {
+ width: 5px;
+ }
+
+ .cityShop::-webkit-scrollbar-thumb {
+ background-color: #123EAB;
+ border: 20px solid transparent;
+ }
+
+
+.goto {
+ display: block;
+ text-decoration: none;
+
+ margin-left: 25px;
+ margin-top: 12px;
+ margin-bottom: 5px;
+ color: black;
+
+ max-width: 190px;
+}
+
+.goto:hover {
+ font-weight: bold;
+ border-bottom: 2px solid #123EAB;
+}
+
+/* Карта */
+#map {
+ max-width: 850px;
+ width: 100%;
+ height: 400px;
+}
\ No newline at end of file
diff --git a/mirzaev/skillparts/system/web/js/yandex/provider.js b/mirzaev/skillparts/system/web/js/yandex/provider.js
new file mode 100644
index 0000000..d78b4c6
--- /dev/null
+++ b/mirzaev/skillparts/system/web/js/yandex/provider.js
@@ -0,0 +1,96 @@
+ // Список городов и филиалов в них
+ var shopList = [
+ {
+ 'cityName': 'Архангельск',
+ 'shops': [
+ {'coordinates': [64.539304, 40.518735], 'name': 'Рязанский проспект, 6Ас21'},
+ ]
+ },
+ {
+ 'cityName': 'Владивосток',
+ 'shops': [
+ {'coordinates': [43.134019, 131.928379], 'name': 'Рязанский проспект, 6Ас21'},
+ ]
+ },
+ {
+ 'cityName': 'Екатеринбург',
+ 'shops': [
+ {'coordinates': [56.838002, 60.597295], 'name': 'Будапештская улица, 36к2'},
+ ]
+ },
+ {
+ 'cityName': 'Калининград',
+ 'shops': [
+ {'coordinates': [55.916229, 37.854467], 'name': 'Будапештская улица, 36к2'},
+ ]
+ },
+ {
+ 'cityName': 'Краснодар',
+ 'shops': [
+ {'coordinates': [59.99486277158917, 30.406505207030918], 'name': 'проспект Непокорённых'},
+ ]
+ },
+ {
+ 'cityName': 'Красноярск',
+ 'shops': [
+ {'coordinates': [59.863210042666125, 30.37903938671841], 'name': 'Будапештская улица, 36к2'},
+ {'coordinates': [59.99486277158917, 30.406505207030918], 'name': 'проспект Непокорённых'}
+ ]
+ },
+ {
+ 'cityName': 'Комосомольск-на-Амуре',
+ 'shops': [
+ {'coordinates': [50.54986, 137.007867], 'name': 'Будапештская улица, 36к2'},
+ ]
+ },
+ {
+ 'cityName': 'Москва',
+ 'shops': [
+ {'coordinates': [55.72532368326033, 37.748675112058876], 'name': 'Рязанский проспект, 6Ас21'},
+ ]
+ },
+ {
+ 'cityName': 'Мурманск',
+ 'shops': [
+ {'coordinates': [68.96956299999999, 33.07454], 'name': 'Будапештская улица, 36к2'},
+ ]
+ },
+ {
+ 'cityName': 'Находка',
+ 'shops': [
+ {'coordinates': [59.863210042666125, 30.37903938671841], 'name': 'Будапештская улица, 36к2'},
+ ]
+ },
+ {
+ 'cityName': 'Новосибирск',
+ 'shops': [
+ {'coordinates': [55.028739, 82.90692799999999], 'name': 'Будапештская улица, 36к2'},
+ ]
+ },
+ {
+ 'cityName': 'Омск',
+ 'shops': [
+ {'coordinates': [54.989342, 73.368212], 'name': 'Будапештская улица, 36к2'},
+ ]
+ },
+ {
+ 'cityName': 'Санкт-Петербург',
+ 'shops': [
+ {'coordinates': [59.863210042666125, 30.37903938671841], 'name': 'Будапештская улица, 36к2'},
+ {'coordinates': [59.99486277158917, 30.406505207030918], 'name': 'проспект Непокорённых'}
+ ]
+ },
+ {
+ 'cityName': 'Сочи',
+ 'shops': [
+ {'coordinates': [59.863210042666125, 30.37903938671841], 'name': 'Будапештская улица, 36к2'},
+ {'coordinates': [59.99486277158917, 30.406505207030918], 'name': 'проспект Непокорённых'}
+ ]
+ },
+ {
+ 'cityName': 'Хабаровск',
+ 'shops': [
+ {'coordinates': [48.486518, 135.115512], 'name': 'Промышленная, 3'},
+ ]
+ },
+ ];
\ No newline at end of file
diff --git a/mirzaev/skillparts/system/web/js/yandex/ymap.js b/mirzaev/skillparts/system/web/js/yandex/ymap.js
new file mode 100644
index 0000000..aaacac6
--- /dev/null
+++ b/mirzaev/skillparts/system/web/js/yandex/ymap.js
@@ -0,0 +1,77 @@
+// Функция ymaps.ready() будет вызвана, когда
+ // загрузятся все компоненты API, а также когда будет готово DOM-дерево.
+ var myMap;
+ var placemarkCollections = {};
+ var placemarkList = {};
+
+
+
+ ymaps.ready(init);
+
+ function init() {
+
+ // Создаем карту
+ myMap = new ymaps.Map("map", {
+ center: [48.486518, 135.115512],
+ zoom: 15,
+ controls: [
+ 'zoomControl'
+ ],
+ zoomMargin: [20]
+ });
+
+ // var suggestView1 = new ymaps.SuggestView('suggest', { results: 3});
+
+ for (var i = 0; i < shopList.length; i++) {
+
+ // Добавляем название города в список
+ $('div#cities').append('' + shopList[i].cityName + '')
+
+ // Создаём коллекцию меток для города
+ var cityCollection = new ymaps.GeoObjectCollection();
+
+ for (var c = 0; c < shopList[i].shops.length; c++) {
+ var shopInfo = shopList[i].shops[c];
+
+ var shopPlacemark = new ymaps.Placemark(
+ shopInfo.coordinates,
+ {
+ hintContent: shopInfo.name,
+ balloonContent: shopInfo.name,
+ },
+ );
+
+ if (!placemarkList[i]) placemarkList[i] = {};
+ placemarkList[i][c] = shopPlacemark;
+
+ // Добавляем метку в коллекцию
+ cityCollection.add(shopPlacemark);
+
+ }
+
+ placemarkCollections[i] = cityCollection;
+
+ // Добавляем коллекцию на карту
+ myMap.geoObjects.add(cityCollection);
+
+ }
+
+ }
+
+ // Переключение города
+ $('div#cities').on('click', 'a#goto', function () {
+ var cityId = $(this).attr('data-goto');
+
+ // Масштабируем и выравниваем карту так, чтобы были видны метки для выбранного города
+ myMap.setBounds(placemarkCollections[cityId].getBounds(), {checkZoomRange:true}).then(function(){
+ if(myMap.getZoom() > 15) myMap.setZoom(15); // Если значение zoom превышает 15, то устанавливаем 15.
+ });
+
+ // Добавление списка филиалов определенного города
+ // $('#shops').html('');
+ // for (var c = 0; c < shopList[cityId].shops.length; c++) {
+ // $('#shops').append('' + shopList[cityId].shops[c].name + '');
+ // }
+
+ });
+