Skip to content

[Feature] Распилить OrderView.vue и крупные mgr-экраны (>1000 LOC) #339

Description

@Ibochkarev

Описание функции

Декомпозировать god-компоненты Vue Manager, начиная с OrderView.vue (~2517 строк). Рядом: GridFieldsConfig.vue (~1829), CategoryProductsGrid.vue (~1436), ряд справочных гридов 1100+.

Проблема, которую решает

Один файл смешивает layout, загрузку заказа, продукты, статусы, cost, side-effects. Ревью и регрессии дорогие. Повторяющийся CRUD/filter шаблон в гридах копируется вместо общего composable.

Предлагаемое решение

  1. OrderView.vue → shell + дочерние секции (header, products, customer/address, totals/actions) через уже принятый provide/inject (composables/orderContext.js).
  2. Вынести чистые helpers в utils/ / composables; UI оставить в .vue.
  3. Для гридов: общий слой list/filter/CRUD только если удаляет копипасту минимум в 3 экранах — иначе точечный split самого жирного файла.
  4. Цель первой волны: OrderView.vue < 1000 LOC без смены UX.

Не плодить identity wrappers и «OrderViewContainer» без смысла.

Альтернативные варианты

  • Оставить как есть, править точечно — долг растёт с каждым PR.
  • Полный rewrite на Pinia store — шире scope; сначала composition + файлы.

Примеры использования

Менеджер открывает заказ как сейчас; внутри — меньше связанного state в одном SFC.

Критерии приёмки

  • OrderView.vue < 1000 строк.
  • Поведение экрана заказа без регрессий (ручной чеклист в PR).
  • npm run lint по затронутым путям.
  • Лексиконы не ломаются (ключи в vue.inc.php ru+en).

Дополнительный контекст

Параллельно с распилом OrdersController. ExtJS→Vue вкладки товара — отдельно: #113, #114.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestjavascriptPull requests that update javascript codepriority: highВажно исправить в ближайшее времяtech-debtMaintainability / refactor / architecture debt

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions