diff --git a/frontend/admin/src/components/MainPageConfigurator/Blocks/BaseBlock.vue b/frontend/admin/src/components/MainPageConfigurator/Blocks/BaseBlock.vue
index 4a66b95..a6c2bec 100644
--- a/frontend/admin/src/components/MainPageConfigurator/Blocks/BaseBlock.vue
+++ b/frontend/admin/src/components/MainPageConfigurator/Blocks/BaseBlock.vue
@@ -61,7 +61,3 @@ function confirmedRemove(event) {
});
}
-
-
diff --git a/frontend/admin/src/components/MainPageConfigurator/Blocks/ProductsFeedBlock.vue b/frontend/admin/src/components/MainPageConfigurator/Blocks/ProductsFeedBlock.vue
index d781402..05cf9aa 100644
--- a/frontend/admin/src/components/MainPageConfigurator/Blocks/ProductsFeedBlock.vue
+++ b/frontend/admin/src/components/MainPageConfigurator/Blocks/ProductsFeedBlock.vue
@@ -13,10 +13,6 @@
Максимальное кол-во страниц:
{{ value.data.max_page_count }}
-
- Соотношение сторон:
- {{ value.data.image_aspect_ratio || '1:1' }}
-
diff --git a/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsCarouselForm.vue b/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsCarouselForm.vue
index 4a8c1bd..b466d36 100644
--- a/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsCarouselForm.vue
+++ b/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsCarouselForm.vue
@@ -37,18 +37,6 @@
-
-
-
Изображения
-
-
-
-
-
- Выберите соотношение сторон для изображений товаров.
-
-
-
@@ -149,30 +137,13 @@ import BaseForm from "@/components/MainPageConfigurator/Forms/BaseForm.vue";
import FormItem from "@/components/MainPageConfigurator/Forms/FormItem.vue";
import CategorySelect from "@/components/Form/CategorySelect.vue";
import {Fieldset, InputNumber, InputText, Panel, ToggleSwitch} from "primevue";
-import AspectRatioSelect from "@/components/MainPageConfigurator/Forms/AspectRatioSelect.vue";
const draft = ref(null);
const model = defineModel();
const emit = defineEmits(['cancel']);
-const imageAspectRatio = computed({
- get() {
- return draft.value.data.image_aspect_ratio || '1:1';
- },
- set(value) {
- draft.value.data.image_aspect_ratio = value;
- }
-});
-
const isChanged = computed(() => {
- const normalize = (obj) => {
- const clone = JSON.parse(JSON.stringify(obj));
- if (clone.data && !clone.data.image_aspect_ratio) {
- clone.data.image_aspect_ratio = '1:1';
- }
- return JSON.stringify(clone);
- };
- return md5(normalize(model.value)) !== md5(normalize(draft.value));
+ return md5(JSON.stringify(model.value)) !== md5(JSON.stringify(draft.value));
});
// Инициализация carousel, если его нет (только для записи)
diff --git a/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsFeedForm.vue b/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsFeedForm.vue
index da3b3de..2597e74 100644
--- a/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsFeedForm.vue
+++ b/frontend/admin/src/components/MainPageConfigurator/Forms/ProductsFeedForm.vue
@@ -26,15 +26,6 @@
Ограничение страниц снижает нагрузку на сервер.
-
-
-
-
-
-
- Выберите соотношение сторон для изображений товаров.
-
-
@@ -46,7 +37,6 @@ import {md5} from "js-md5";
import BaseForm from "@/components/MainPageConfigurator/Forms/BaseForm.vue";
import {InputNumber} from "primevue";
import FormItem from "@/components/MainPageConfigurator/Forms/FormItem.vue";
-import AspectRatioSelect from "@/components/MainPageConfigurator/Forms/AspectRatioSelect.vue";
const draft = ref(null);
const model = defineModel();
@@ -72,7 +62,6 @@ onMounted(() => {
draft.value = JSON.parse(JSON.stringify(model.value));
if (draft.value.data) {
if (draft.value.data.max_page_count) draft.value.data.max_page_count = parseInt(draft.value.data.max_page_count);
- if (!draft.value.data.image_aspect_ratio) draft.value.data.image_aspect_ratio = '1:1';
}
});
diff --git a/frontend/admin/src/components/MainPageConfigurator/availableBlocks.js b/frontend/admin/src/components/MainPageConfigurator/availableBlocks.js
index c6be263..2ec0d99 100644
--- a/frontend/admin/src/components/MainPageConfigurator/availableBlocks.js
+++ b/frontend/admin/src/components/MainPageConfigurator/availableBlocks.js
@@ -58,7 +58,6 @@ export const blocks = [
goal_name: '',
data: {
max_page_count: 10,
- image_aspect_ratio: '1:1',
},
},
{
@@ -70,7 +69,6 @@ export const blocks = [
data: {
category_id: null,
all_text: null,
- image_aspect_ratio: '1:1',
carousel: {
slides_per_view: null,
space_between: null,
diff --git a/frontend/admin/src/stores/settings.js b/frontend/admin/src/stores/settings.js
index 2b9b4c0..a2cf8a2 100644
--- a/frontend/admin/src/stores/settings.js
+++ b/frontend/admin/src/stores/settings.js
@@ -18,6 +18,8 @@ export const useSettingsStore = defineStore('settings', {
theme_dark: 'dark',
app_debug: false,
privacy_policy_link: null,
+ image_aspect_ratio: '1:1',
+ image_crop_algorithm: 'cover',
},
telegram: {
diff --git a/frontend/admin/src/views/GeneralView.vue b/frontend/admin/src/views/GeneralView.vue
index aee0eb2..38b782e 100644
--- a/frontend/admin/src/views/GeneralView.vue
+++ b/frontend/admin/src/views/GeneralView.vue
@@ -49,6 +49,19 @@
Режим разработчика. Рекомендуется включать только по необходимости.
В остальных случаях, для нормальной работы магазина, должен быть выключен.
+
+
+ Выберите соотношение сторон для изображений товаров. Это глобальная настройка, которая будет применяться ко всем изображениям в списках товаров: карусель товаров, лента товаров, результаты поиска.
+
+
+
+ Выберите алгоритм обрезки изображений. Эта настройка применяется глобально ко всем изображениям в списках товаров (карусель товаров, лента товаров, результаты поиска):
+
+ - Cover - обрезает изображение, сохраняя пропорции, чтобы заполнить весь размер (может обрезать края)
+ - Contain - вписывает изображение в размер, сохраняя пропорции (может добавить пустые поля)
+ - Resize - изменяет размер изображения с сохранением пропорций (без обрезки)
+
+