From f6adfe546b48f19851b8dbfa960e2c31587c7185 Mon Sep 17 00:00:00 2001 From: fomichev Date: Thu, 12 Dec 2024 18:18:39 +0300 Subject: [PATCH] =?utf8?q?=D0=A4=D0=BE=D1=80=D0=BC=D0=B0=20=D0=B4=D0=BB?= =?utf8?q?=D1=8F=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=B0=D1=86=D0=B8?= =?utf8?q?=D0=B8=20JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../UsersMessageManagementController.php | 52 ++++++++++++------ .../users-message-management/_data_table.php | 54 +++++++++++++++++++ .../users-message-management/_export.php | 52 ++++++++---------- .../export-kogort.php | 31 +++++++---- .../views/users-message-management/index.php | 3 +- .../web/js/users-message-management/index.js | 35 ++++++++++++ 6 files changed, 168 insertions(+), 59 deletions(-) create mode 100644 erp24/views/users-message-management/_data_table.php diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index 654e1b40..d4c32685 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -17,12 +17,11 @@ class UsersMessageManagementController extends Controller { $request = Yii::$app->request; $model = UsersMessageManagement::find()->one(); - - $month = $request->get('month', date('m')); - $year = $request->get('year', date('Y')); + $month = date('m'); + $year = date('Y'); $startDate = date('Y-m-d', strtotime("$year-$month-01")); - $endDate = date('Y-m-t', strtotime($startDate)); // Последний день месяца + $endDate = date('Y-m-t', strtotime($startDate)); $dates = []; $currentDate = strtotime($startDate); @@ -30,16 +29,23 @@ class UsersMessageManagementController extends Controller while ($currentDate <= strtotime($endDate)) { $formattedDate = date('Y-m-d', $currentDate); $dates[$formattedDate] = [ - 'target' => [$this->generateLink($formattedDate, 'target', 'generate-excel'), - $this->generateLink($formattedDate, 'target', 'view-kogort-users')], - 'whatsapp' => [$this->generateLink($formattedDate, 'whatsapp', 'generate-excel'), - $this->generateLink($formattedDate, 'whatsapp', 'view-kogort-users')], - 'call' => [$this->generateLink($formattedDate, 'call', 'generate-excel'), - $this->generateLink($formattedDate, 'call', 'view-kogort-users')], + 'target' => [ + $this->generateLink($formattedDate, 'target', 'generate-excel'), + $this->generateLink($formattedDate, 'target', 'view-kogort-users') + ], + 'whatsapp' => [ + $this->generateLink($formattedDate, 'whatsapp', 'generate-excel'), + $this->generateLink($formattedDate, 'whatsapp', 'view-kogort-users') + ], + 'call' => [ + $this->generateLink($formattedDate, 'call', 'generate-excel'), + $this->generateLink($formattedDate, 'call', 'view-kogort-users') + ], ]; $currentDate = strtotime('+1 day', $currentDate); } + if (!$model) { $model = new UsersMessageManagement; } @@ -61,6 +67,7 @@ class UsersMessageManagementController extends Controller 'links' => $dates, 'month' => $month, 'year' => $year, + ]); } @@ -81,16 +88,27 @@ class UsersMessageManagementController extends Controller while ($currentDate <= strtotime($endDate)) { $formattedDate = date('Y-m-d', $currentDate); $dates[$formattedDate] = [ - 'target' => [$this->generateLink($formattedDate, 'target', 'generate-excel'), - $this->generateLink($formattedDate, 'target', 'view-kogort-users')], - 'whatsapp' => [$this->generateLink($formattedDate, 'whatsapp', 'generate-excel'), - $this->generateLink($formattedDate, 'whatsapp', 'view-kogort-users')], - 'call' => [$this->generateLink($formattedDate, 'call', 'generate-excel'), - $this->generateLink($formattedDate, 'call', 'view-kogort-users')], + 'target' => [ + $this->generateLink($formattedDate, 'target', 'generate-excel'), + $this->generateLink($formattedDate, 'target', 'view-kogort-users') + ], + 'whatsapp' => [ + $this->generateLink($formattedDate, 'whatsapp', 'generate-excel'), + $this->generateLink($formattedDate, 'whatsapp', 'view-kogort-users') + ], + 'call' => [ + $this->generateLink($formattedDate, 'call', 'generate-excel'), + $this->generateLink($formattedDate, 'call', 'view-kogort-users') + ], ]; $currentDate = strtotime('+1 day', $currentDate); } - //var_dump($dates); die(); + + if ($request->isAjax) { + return $this->renderPartial('_data_table', [ + 'links' => $dates, + ]); + } return $this->render('export-kogort', [ 'links' => $dates, diff --git a/erp24/views/users-message-management/_data_table.php b/erp24/views/users-message-management/_data_table.php new file mode 100644 index 00000000..c3a0d11c --- /dev/null +++ b/erp24/views/users-message-management/_data_table.php @@ -0,0 +1,54 @@ + + + + + + + + + + + + + $columns): ?> + + + + + + + + +
День выгрузкиTargetWhatsappЗвонок
+ + Таргет-.xlsx + + + Посмотреть + + + + Whatsapp-.xlsx + + + Посмотреть + + + + Звонок-.xlsx + + + Посмотреть + +
\ No newline at end of file diff --git a/erp24/views/users-message-management/_export.php b/erp24/views/users-message-management/_export.php index 34293dc6..74f50d57 100644 --- a/erp24/views/users-message-management/_export.php +++ b/erp24/views/users-message-management/_export.php @@ -1,50 +1,41 @@
- 'month-year-form', - 'options' => ['class' => 'row align-items-center g-3'], - ]); - - ?> - -
- field($model, 'month', [ - 'options' => ['class' => 'form-group'], - ])->dropDownList(\yii_app\helpers\DateHelper::MONTH_NUMBER_NAMES, [ - 'class' => 'form-control', - 'prompt' => 'Выберите месяц', - ])->label(false) ?> -
- -
- field($model, 'year', [ - 'options' => ['class' => 'form-group'], - ])->dropDownList(range(((int)$year - 3), ((int)$year + 3)), [ - 'class' => 'form-control', - 'prompt' => 'Выберите год', - ])->label(false) ?> -
+
+
+ +
-
- 'btn btn-primary']) ?> +
+ +
-
- +
@@ -87,3 +78,4 @@ use yii\widgets\ActiveForm;
+
diff --git a/erp24/views/users-message-management/export-kogort.php b/erp24/views/users-message-management/export-kogort.php index 39e53554..258014b3 100644 --- a/erp24/views/users-message-management/export-kogort.php +++ b/erp24/views/users-message-management/export-kogort.php @@ -3,8 +3,8 @@ use yii\helpers\Html; use yii\helpers\Url; /** @var array $links */ -/** @var string $startDate */ -/** @var string $endDate */ +/** @var string $month */ +/** @var string $year */ $this->title = 'Рассылка по когортам'; ?> @@ -16,22 +16,31 @@ $this->title = 'Рассылка по когортам'; Когорты
-
-
+
+
- - +
+
- - +
+
-
-
- + +
diff --git a/erp24/views/users-message-management/index.php b/erp24/views/users-message-management/index.php index ae59699c..6d9825cc 100644 --- a/erp24/views/users-message-management/index.php +++ b/erp24/views/users-message-management/index.php @@ -8,6 +8,7 @@ use dosamigos\datetimepicker\DateTimePicker; use yii_app\records\UsersMessageManagement; /* @var $model UsersMessageManagement */ + /** @var array $links */ /** @var string $month */ /** @var string $year */ @@ -171,7 +172,7 @@ $this->registerJsFile('/js/users-message-management/index.js', ['position' => \y 'links' => $links, 'month' => $month, 'year' => $year, - 'model' => $model, + ]) ?> diff --git a/erp24/web/js/users-message-management/index.js b/erp24/web/js/users-message-management/index.js index 1b3d1ce1..9551156c 100644 --- a/erp24/web/js/users-message-management/index.js +++ b/erp24/web/js/users-message-management/index.js @@ -26,3 +26,38 @@ function setReadonly(id, checked) { $(document).ready(() => { showTab('mainTab'); }) + +document.addEventListener('DOMContentLoaded', function () { + const monthSelect = document.getElementById('month-select'); + const yearSelect = document.getElementById('year-select'); + + function handleFormChange() { + const month = monthSelect.value; + const year = yearSelect.value; + + if (!month || !year) { + return; + } + + const params = new URLSearchParams({ month, year }); + const url = '/users-message-management/export-kogort?' + params.toString(); + + fetch(url, { + method: 'GET', + headers: { + 'X-Requested-With': 'XMLHttpRequest' // Указываем, что это AJAX-запрос + }, + }) + .then(response => response.text()) + .then(html => { + // Обновляем таблицу с данными + document.querySelector('#data-table').innerHTML = html; + }) + .catch(error => { + console.error('Ошибка:', error); + }); + } + + monthSelect.addEventListener('change', handleFormChange); + yearSelect.addEventListener('change', handleFormChange); +}); -- 2.39.5