-
-
-
-
-
+
+
+
diff --git a/mirzaev/skillparts/system/web/css/pages/partners.css b/mirzaev/skillparts/system/web/css/pages/partners.css
index e4a1e2e..08373cb 100644
--- a/mirzaev/skillparts/system/web/css/pages/partners.css
+++ b/mirzaev/skillparts/system/web/css/pages/partners.css
@@ -1,64 +1,32 @@
-.wrapper {
- display: flex;
- justify-content: space-between;
-}
-
/* Выбор города */
-.label {
- text-align: center;
- font-weight: bold;
-
- max-width: 240px;
- width: 100%;
- padding: 4px 0;
-
- color: azure;
+#page_partners>article label {
background-color: #123EAB;
-
- position: fixed;
}
/* Блок городов */
-.cityShop {
- width: 240px;
+#page_partners>article .terminals {
height: 400px;
-
- background-color: #fff;
-
overflow-y: scroll;
-
+ scrollbar-width: none;
+ background-color: #fff;
}
-.cityShop::-webkit-scrollbar {
- width: 5px;
- }
-
- .cityShop::-webkit-scrollbar-thumb {
- background-color: #123EAB;
- border: 20px solid transparent;
- }
-
-
-.goto {
+#page_partners>article .goto {
display: block;
- text-decoration: none;
-
margin-left: 25px;
margin-top: 12px;
margin-bottom: 5px;
- color: black;
-
max-width: 190px;
+ text-decoration: none;
+ color: black;
}
-.goto:hover {
+#page_partners>article .goto:hover {
font-weight: bold;
border-bottom: 2px solid #123EAB;
}
/* Карта */
-#map {
- max-width: 850px;
- width: 100%;
+#page_partners>article #map {
height: 400px;
-}
\ No newline at end of file
+}
diff --git a/mirzaev/skillparts/system/web/js/yandex/map.js b/mirzaev/skillparts/system/web/js/yandex/map.js
new file mode 100644
index 0000000..ad33735
--- /dev/null
+++ b/mirzaev/skillparts/system/web/js/yandex/map.js
@@ -0,0 +1,123 @@
+function partners_yandex_map_init() {
+ // Функция ymaps.ready() будет вызвана, когда
+ // загрузятся все компоненты API, а также когда будет готово DOM-дерево.
+ let myMap;
+ let placemarkCollections = {};
+ let placemarkList = {};
+
+ // Создаем карту
+ myMap = new ymaps.Map("map", {
+ center: [48.486518, 135.115512],
+ zoom: 15,
+ controls: [
+ 'zoomControl'
+ ],
+ zoomMargin: [20]
+ });
+
+
+ let terminals = partners_terminals_read();
+
+ for (let i = 0; i < shopList.length; i++) {
+
+ // Добавляем название города в список
+ $('div#cities').append('
' + shopList[i].cityName + '')
+
+ // Создаём коллекцию меток для города
+ let cityCollection = new ymaps.GeoObjectCollection();
+
+ for (let c = 0; c < shopList[i].shops.length; c++) {
+ let shopInfo = shopList[i].shops[c];
+
+ let 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);
+
+ }
+}
+
+function partners_terminals_read(amount = 300) {
+ let terminals;
+
+ $.ajax({
+ url: '/terminals/read',
+ type: 'post',
+ dataType: 'json',
+ data: {
+ '_csrf': yii.getCsrfToken(),
+ amount
+ },
+ success: function (data, status, xhr) {
+
+ if (data !== undefined) {
+ // Получены данные с сервера
+
+ // Список терминалов
+ if (data.terminals !== undefined) {
+
+ terminals = data.terminals;
+ }
+ }
+
+ return yandex_map_response(data, status, xhr);
+ },
+ error: yandex_map_response_error
+ });
+
+ return terminals;
+}
+
+// Переключение города
+$('div#cities').on('click', 'a#goto', function () {
+ let 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 (let c = 0; c < shopList[cityId].shops.length; c++) {
+ // $('#shops').append('
' + shopList[cityId].shops[c].name + '');
+ // }
+});
+
+
+function yandex_map_response(data, status, xhr) {
+ // Обработка ответов
+
+ main_response(data, status, xhr);
+};
+
+function yandex_map_response_success(data, status, xhr) {
+ // Обработка ответов от удавшихся запросов
+
+ yandex_map_response(data, status, xhr);
+};
+
+function yandex_map_response_error(data, status, xhr) {
+ // Обработка ответов от неудавшихся запросов
+
+ // Инициализация
+ data = data.responseJSON;
+
+ yandex_map_response(data, status, xhr);
+};
diff --git a/mirzaev/skillparts/system/web/js/yandex/provider.js b/mirzaev/skillparts/system/web/js/yandex/provider.js
deleted file mode 100644
index d78b4c6..0000000
--- a/mirzaev/skillparts/system/web/js/yandex/provider.js
+++ /dev/null
@@ -1,96 +0,0 @@
- // Список городов и филиалов в них
- 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
deleted file mode 100644
index aaacac6..0000000
--- a/mirzaev/skillparts/system/web/js/yandex/ymap.js
+++ /dev/null
@@ -1,77 +0,0 @@
-// Функция 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 + '');
- // }
-
- });
-