]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-360 Сборка страницы автопм
authormarina <m.zozirova@gmail.com>
Tue, 17 Jun 2025 07:56:26 +0000 (10:56 +0300)
committermarina <m.zozirova@gmail.com>
Tue, 17 Jun 2025 07:56:26 +0000 (10:56 +0300)
erp24/web/js/autoplannogramma/autoplannogramma.js

index 725ae3dda8aa446926a79d225ca6311ae38c04b2..25a22b288fd7814fb960a4d32759fb878ee1d8dd 100644 (file)
@@ -57,7 +57,7 @@ $('.subcategory .list-group-item').on('click', function (e) {
     const subcategory = $link.data('subcategory');
     const $row = $link.closest('tr');
     const filters = getFilterData();
-    filters['month'] = getMonthByWeek(filters['week'], filters['year'], true)
+    filters['month'] = getMonthByWeek(filters['week'], filters['year'], true);
     filters.category = category;
     filters.subcategory = subcategory;
 
@@ -70,6 +70,23 @@ $('.subcategory .list-group-item').on('click', function (e) {
             alert('Нет планограммы для выбранного периода');
         }
 
+        // Функция генерации текста для title
+        function generateTitleString(titleObj) {
+            if (!titleObj || typeof titleObj !== 'object') return '';
+            let parts = [];
+
+            for (const [type, groups] of Object.entries(titleObj)) {
+                if (typeof groups !== 'object') continue;
+                let groupParts = [];
+                for (const [group, value] of Object.entries(groups)) {
+                    groupParts.push(`${group}: ${value}`);
+                }
+                parts.push(`${type} — ${groupParts.join(', ')}`);
+            }
+
+            return parts.join(' | ');
+        }
+
         response.forEach(item => {
             const tr = $('<tr class="inserted-row"></tr>');
 
@@ -87,7 +104,8 @@ $('.subcategory .list-group-item').on('click', function (e) {
                 val.store_id,
                 {
                     quantity: val.quantity,
-                    id: val.id
+                    id: val.id,
+                    title: val.title || {}
                 }
             ]));
 
@@ -100,7 +118,8 @@ $('.subcategory .list-group-item').on('click', function (e) {
                 const isVisible = $(`table tbody tr:first td:eq(${index})`).is(':visible');
                 if (!isVisible) return;
 
-                const val = valuesMap[storeId] || {quantity: '', id: ''};
+                const val = valuesMap[storeId] || {quantity: '', id: '', title: {}};
+                const tooltipTitle = $('<div>').text(generateTitleString(val.title)).html(); // экранирование
 
                 const td = $(`
                     <td data-store-id="${storeId}">
@@ -110,9 +129,9 @@ $('.subcategory .list-group-item').on('click', function (e) {
                                    data-id="${val.id}"
                                    data-guid="${item.product_id}"
                                    data-store_id="${storeId}"
+                                   title="${tooltipTitle}"
                                    data-bs-toggle="tooltip" data-bs-placement="top"
-                                   data-original-value="${val.quantity}"
-                                   >
+                                   data-original-value="${val.quantity}">
                             <button class="reject-btn border-0 bg-transparent cursor-pointer">
                                 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
                                     <path d="M20 11v5a1 1 0 0 1-2 0v-4H7.414l1.293 1.293a1 1 0 0 1-1.414 1.414l-3-3a1 1 0 0 1 0-1.416l3-3a1 1 0 1 1 1.414 1.416L7.414 10H19a1 1 0 0 1 1 1z"
@@ -128,6 +147,9 @@ $('.subcategory .list-group-item').on('click', function (e) {
 
             $row.after(tr);
         });
+
+        // Инициализация Bootstrap tooltips
+        $('[data-bs-toggle="tooltip"]').tooltip();
     })
         .fail(xhr => alert('Ошибка: ' + xhr.responseText))
         .always(() => {