Skip to content

Conversation

@Ibochkarev
Copy link
Member

@Ibochkarev Ibochkarev commented Feb 8, 2026

Описание

Рефакторинг Vue Manager: миграция PrimeVue, стили, линтеры, единообразие UI.

PrimeVue 4

  • Замена Deprecated компонентов Dropdown на Select в компонентах (VendorCombo, ProductDataConfig, NotificationsGrid, ModelFieldsGrid, GridFieldsConfig, ExtraFieldsManager, DynamicField, ActionsEditor)
  • camelCase → kebab-case для атрибутов
  • Обновление привязок событий и свойств

Стили

  • px → rem
  • Единый вид плейсхолдеров и значений в контролах
  • Жёстко заданные цвета → CSS‑переменные
  • formStyles.js — общие стили для input
  • SCSS переменные (_variables.scss)
  • OptionsChips — PrimeIcons вместо текста
  • StatusesGrid — padding и размер шрифта для badges

Линтеры и форматирование

  • ESLint: eslint-config-prettier, eslint-plugin-simple-import-sort
  • Prettier (.prettierrc, .prettierignore)
  • Stylelint (.stylelintrc.json)
  • Скрипты: format, lint:all

Прочее

  • PrimeIcons CSS подключён в контроллерах (category, customers, help, notifications, order, orders, settings, product)
  • Обновлены: request.js, modx.js, validation.js, useProductStore
  • Масштабные правки в ApiTest, OrderView, ImportProducts, ProductData

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое

Связанные Issues

Closes #(номер issue)

Как это было протестировано?

  • Ручное тестирование
  • ESLint, Prettier, Stylelint
  • PHPStan
  • Разные версии PHP/MODX

Конфигурация тестирования:

  • MiniShop3:
  • MODX:
  • PHP:

Скриншоты (если применимо)

До После

Чеклист

  • Код соответствует стилю проекта
  • Комментарии в сложных местах
  • Функциональность не сломана
  • Лексиконы ru/en
  • PHPStan без новых ошибок
  • ESLint без ошибок
  • CHANGELOG.md обновлён

Дополнительные заметки

78 файлов изменено. Затронуты: vueManager (компоненты, entries, composables, stores, utils), контроллеры, _build/config.inc.php.

Ivan Bochkarev added 7 commits February 8, 2026 10:31
- Added PrimeIcons CSS to various manager controllers for consistent icon usage.
- Updated color styles in multiple Vue components to use CSS variables for better theming.
- Enhanced UI consistency by replacing hardcoded colors with variable references across components.
- Integrated eslint-config-prettier and eslint-plugin-simple-import-sort for improved code quality.
- Updated package.json with new scripts for formatting and linting checks.
- Refactored various Vue components for consistent code style and organization.
- Added new dependencies for stylelint and prettier to maintain code formatting standards.
…mponents

- Replaced text remove icon with PrimeIcons in OptionsChips for improved visual consistency.
- Adjusted padding and font size for status badges in StatusesGrid to enhance UI uniformity.
- Added new styles for compact badges and unified height for various input controls in formStyles.js.
…tency

- Updated multiple components to replace Dropdown with Select from PrimeVue for a unified user experience.
- Adjusted related imports and properties to align with the new Select component usage.
- Enhanced the overall UI consistency across the application by standardizing component types.
…nality

- Changed attribute names in various Vue components from camelCase to kebab-case for uniformity.
- Enabled installation in the config file to streamline deployment.
- Adjusted event handling and property bindings to enhance component behavior and maintain consistency across the application.
@Ibochkarev Ibochkarev changed the title Refactor UI Refactor UI + улучшение линтеров и форматирования кода Feb 8, 2026
@Ibochkarev Ibochkarev requested a review from biz87 February 8, 2026 06:23
@biz87
Copy link
Member

biz87 commented Feb 8, 2026

Критические замечания

1. Изменение префикса лексикона в _build/build.php

- 'desc' => 'ms3_prop_' . $k,
+ 'desc' => 'ms_prop_' . $k,

Вопрос: Префикс лексикона изменён с ms3_prop_ на ms_prop_.

  • Существуют ли лексиконы с префиксом ms_prop_?
  • Это намеренное изменение или опечатка?

Если лексиконы ms_prop_* не существуют, описания свойств сниппетов перестанут отображаться.


2. Даунгрейд @primeuix/themes в package.json

- "@primeuix/themes": "^2.0.3",
+ "@primeuix/themes": "^1.0.0",

Вопрос: Версия понижена с 2.x до 1.x. Причина не указана в описании PR.

Возможные последствия:

  • Несовместимость с PrimeVue 4.3.1
  • Визуальные регрессии в компонентах

Пожалуйста, укажи причину даунгрейда.


Замечания средней важности

3. Удалён eslint-disable комментарий

// vueManager/src/utils/modx.js
- // eslint-disable-next-line no-undef
  return typeof ms3 !== 'undefined' ? ms3.config : null

Нужно убедиться, что глобальные переменные ms3, MODx, Ext добавлены в eslint.config.jsglobals. Иначе ESLint будет выдавать ошибки no-undef.

Проверка: В текущем eslint.config.js вижу только:

globals: {
  Ext: 'readonly',
  MODx: 'readonly',
}

Переменная ms3 отсутствует — нужно добавить.


4. CSS Variables — возможное упрощение палитры

Файл _variables.scss содержит ~60 CSS переменных, что хорошо для consistency. Однако некоторые цвета очень близки:

Переменная Значение
--ms3-text-muted #6c757d
--ms3-text-muted-alt #6b7280
--ms3-text-secondary #64748b

Рекомендация: рассмотреть объединение близких цветов для упрощения поддержки.


5. Runtime injection стилей в formStyles.js

const el = document.createElement('style')
el.id = STYLE_ID
el.textContent = css
document.head.appendChild(el)

Комментарий в коде объясняет причину: "PrimeVue встраиваются в runtime и перезаписывают CSS из файлов".

Это работает, но добавляет complexity. Альтернатива — использовать !important в SCSS или увеличить специфичность селекторов.


Положительные моменты

  • Dropdown → Select — правильная миграция под актуальные практики PrimeVue 4
  • camelCase → kebab-case в атрибутах Vue — соответствует Vue 3 style guide
  • px → rem — улучшает accessibility и масштабируемость
  • Prettier + ESLint + Stylelint — единый code style для всей команды
  • CSS переменные — упрощает кастомизацию темы
  • eslint-plugin-simple-import-sort — автоматическая сортировка импортов улучшает читаемость
  • Структурирование PHP контроллеров — добавлены комментарии к подключениям CSS/JS

Чеклист перед мержем

  • Уточнить изменение ms3_prop_ms_prop_ в build.php
  • Уточнить причину даунгрейда @primeuix/themes с 2.x на 1.x
  • Добавить ms3 в ESLint globals
  • Запустить npm run build — проверить сборку
  • Визуальное тестирование основных страниц:
    • Список товаров
    • Карточка товара
    • Заказы
    • Настройки
    • Статусы

Резюме

PR содержит много полезных улучшений инфраструктуры и code style. Однако перед мержем необходимо:

  1. Обязательно прояснить два критических момента (лексиконы и версия themes)
  2. Желательно добавить ms3 в ESLint globals
  3. Рекомендуется провести визуальное тестирование из-за большого объёма изменений

Copy link
Member

@biz87 biz87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть критические замечания. Нужно посмотреть подробнее

- Changed color references in multiple Vue components from `--ms3-text-secondary` to `--ms3-text-muted` for a more uniform appearance.
- Updated the description in the build.php file to reflect the new property naming convention.
- Upgraded the `@primeuix/themes` dependency to version 2.0.3 in package.json and package-lock.json for enhanced functionality.
@Ibochkarev
Copy link
Member Author

@biz87 можно глянуть

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants