</div>
<div class="row">
- <div class="col-md-5">
- <?php if ($model) { ?>
- <?=$this->render('_product_list', [
- 'model' => $model,
- 'bouquetCompositionProducts' => $bouquetCompositionProducts
- ]);
- ?>
-
-<?php } else {?>
- <?= $this->render('_product_edit', [
- 'availableItems' => $availableItems,
- 'selectedItems' => [],
- 'isCreate' => true,
- ]);?>
-<?php }?>
-
- </div>
+ <div class="col-md-4">
+ <?php if ($model) { ?>
+ <?= $this->render('_product_list', [
+ 'model' => $model,
+ 'bouquetCompositionProducts' => $bouquetCompositionProducts
+ ]);
+ ?>
+
+ <?php } else { ?>
+ <?= $this->render('_product_edit', [
+ 'availableItems' => $availableItems,
+ 'selectedItems' => [],
+ 'isCreate' => true,
+ 'listContainerSize' => ['width' => '300px', 'height' => '300px']
+ ]); ?>
+ <?php } ?>
+ </div>
- <div class="col-md-4">
+ <div class="col-md-5">
<div class="row w-100 w-md-75 w-lg-50">
<?php $model = new BouquetComposition(); ?>
<div class="row mb-2"><?= Html::label("Фото", null, ['class' => 'text-center font-weight-bold pt-5 h5']) ?></div>
'availableItems' => $availableItems,
'selectedItems' => $selectedItems,
'ajaxUrl' => '/bouquet/get-list',
+
'showQuantity' => true,
+ 'listContainerSize' => $listContainerSize,
'triggerButton' => 'apply-button',
'filterFields' => ['size', 'color', 'species', 'category', 'type-num']
]) ?>
- <div class="row">
- <div class="col-md-3">
- <div class="pt-2">
- <p class="mb-1"><strong>Себестоимость:</strong> <span class="cost-value">0</span> ₽</p>
- <p class="mb-1"><strong>Наценка:</strong> <span class="markup-value">0</span> %</p>
- <p class="mb-0"><strong>Цена:</strong> <span class="price-value">0</span> ₽</p>
- </div>
- </div>
- <div class="col-md-6"></div>
- <div class="col-md-2 d-flex justify-content-end align-items-end mx-7 px-3 w-100">
- <?php if (!$isCreate)
- echo Html::submitButton('Сохранить', ['class' => 'btn btn-success w-100'])
- ?>
+<br>
+<div class="row">
+ <div class="col-md-3">
+ <div class="pt-2">
+ <p class="mb-1"><strong>Себестоимость:</strong> <span class="cost-value">0</span> ₽</p>
+ <p class="mb-1"><strong>Наценка:</strong> <span class="markup-value">0</span> %</p>
+ <p class="mb-0"><strong>Цена:</strong> <span class="price-value">0</span> ₽</p>
</div>
</div>
+ <div class="col-md-6"></div>
+ <?php if (!$isCreate) {?>
+ <div class="col-md-2 d-flex justify-content-end align-items-end px-3 w-100">
+ <?= Html::submitButton('Сохранить', ['class' => 'btn btn-success w-100']) ?>
+ </div>
+ <?php } ?>
+
+</div>
<?php //ActiveForm::end(); ?>
\ No newline at end of file
$this->params['breadcrumbs'][] = $this->title;
?>
-<div class="bouquet-create border-bottom-4 p-4">
+<div class="bouquet-create border-bottom-4 p-6">
<?= $this->render('_form', [
'onlineStoresList' => $onlineStoresList,
'bouquetCompositionProducts' => [],
<?= $this->render('_product_edit', [
'availableItems' => $availableItems,
'selectedItems' => $selectedItems,
- 'isCreate' => true,
+ 'isCreate' => false,
+ 'listContainerSize' => [],
]); ?>
</div>
$this->params['breadcrumbs'][] = $this->title;
?>
-<div class="bouquet-view border-bottom-4 p-4">
+<div class="bouquet-view border-bottom-4 p-7">
<?= $this->render('_form', [
'model' => $model,
'onlineStoresList' => $onlineStoresList,
public $selectedItems = [];
public $filterFields = [];
public $ajaxUrl;
+ public $listContainerSize = ['width' => '450px', 'height' => '220px'];
+
public $showQuantity = false;
// Новое свойство для кнопки, вызывающей загрузку
protected function renderDualListBox()
{
$id = $this->getId();
+ $width = isset($this->listContainerSize['width']) ? $this->listContainerSize['width'] : '450px';
+ $height = isset($this->listContainerSize['height']) ? $this->listContainerSize['height'] : '220px';
$css = <<<CSS
<style>
border: 1px solid #ccc;
border-radius: 4px;
}
+
+ .list-container {
+ width: {$width} !important;
+ height: auto !important; /* Высота контейнера динамическая */
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ position: relative;
+ }
+
+ .section-label {
+ width: 100% !important;
+ text-align: center;
+ font-size: 19px;
+ }
+
+ .filter-input {
+ width: 100% !important;
+ margin-bottom: 10px;
+ padding: 5px;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ }
+
+ .dual-list {
+ width: 100% !important;
+ height: {$height} !important;
+ background: white;
+ border: 1px solid #ddd;
+ padding: 5px;
+ text-align: left;
+ overflow-y: auto;
+ border-radius: 5px;
+ }
+
.count-label {
position: absolute;
- bottom: 5px;
+ bottom: -20px;
right: 5px;
- font-size: 12px;
- color: #555;
}
+
.section-label {
font-weight: bold;
margin-bottom: 5px;