Описание функции
Декомпозировать god-компоненты Vue Manager, начиная с OrderView.vue (~2517 строк). Рядом: GridFieldsConfig.vue (~1829), CategoryProductsGrid.vue (~1436), ряд справочных гридов 1100+.
Проблема, которую решает
Один файл смешивает layout, загрузку заказа, продукты, статусы, cost, side-effects. Ревью и регрессии дорогие. Повторяющийся CRUD/filter шаблон в гридах копируется вместо общего composable.
Предлагаемое решение
OrderView.vue → shell + дочерние секции (header, products, customer/address, totals/actions) через уже принятый provide/inject (composables/orderContext.js).
- Вынести чистые helpers в
utils/ / composables; UI оставить в .vue.
- Для гридов: общий слой list/filter/CRUD только если удаляет копипасту минимум в 3 экранах — иначе точечный split самого жирного файла.
- Цель первой волны:
OrderView.vue < 1000 LOC без смены UX.
Не плодить identity wrappers и «OrderViewContainer» без смысла.
Альтернативные варианты
- Оставить как есть, править точечно — долг растёт с каждым PR.
- Полный rewrite на Pinia store — шире scope; сначала composition + файлы.
Примеры использования
Менеджер открывает заказ как сейчас; внутри — меньше связанного state в одном SFC.
Критерии приёмки
Дополнительный контекст
Параллельно с распилом OrdersController. ExtJS→Vue вкладки товара — отдельно: #113, #114.
Описание функции
Декомпозировать god-компоненты Vue Manager, начиная с
OrderView.vue(~2517 строк). Рядом:GridFieldsConfig.vue(~1829),CategoryProductsGrid.vue(~1436), ряд справочных гридов 1100+.Проблема, которую решает
Один файл смешивает layout, загрузку заказа, продукты, статусы, cost, side-effects. Ревью и регрессии дорогие. Повторяющийся CRUD/filter шаблон в гридах копируется вместо общего composable.
Предлагаемое решение
OrderView.vue→ shell + дочерние секции (header, products, customer/address, totals/actions) через уже принятыйprovide/inject(composables/orderContext.js).utils// composables; UI оставить в.vue.OrderView.vue< 1000 LOC без смены UX.Не плодить identity wrappers и «OrderViewContainer» без смысла.
Альтернативные варианты
Примеры использования
Менеджер открывает заказ как сейчас; внутри — меньше связанного state в одном SFC.
Критерии приёмки
OrderView.vue< 1000 строк.npm run lintпо затронутым путям.vue.inc.phpru+en).Дополнительный контекст
Параллельно с распилом
OrdersController. ExtJS→Vue вкладки товара — отдельно: #113, #114.