Files
mono/components/desktop
coopops bbc6453b24
Typecheck / desktop (pull_request) Failing after 8m49s
Typecheck / controller (pull_request) Successful in 13m45s
fix(capital): await onSaved before advancing wizard past БЛАГОРОСТ step
goNext() checked getFirstAvailableCouncilGroup() (which reads isDocParamsReady,
derived from onboardingState.capital_program_doc_data_hash) synchronously right
after saveParams() resolved. But saveParams() fired options.onSaved(hash) without
awaiting it, and the card's onSaved handler did `void handleDocParamsSaved()` —
an async refetch of onboarding state — so isDocParamsReady was still stale at the
moment goNext() decided which council group to jump to. getFirstAvailableCouncilGroup()
returned null, setWizardStepKey never ran, and the wizard just re-rendered the same
БЛАГОРОСТ step, looking like the just-saved params were never registered.

Fix: onSaved is now awaited inside saveParams(), and the card passes the
handleDocParamsSaved() promise through instead of firing it and forgetting it.
2026-07-18 18:27:57 +00:00
..
2026-07-14 22:31:19 +03:00
2025-07-15 09:59:21 +05:00
2025-01-14 13:45:45 +05:00
2025-04-15 15:57:55 +05:00
pwa
2025-07-04 16:07:38 +05:00
2026-03-23 20:34:35 +05:00
2025-01-14 13:45:45 +05:00
2025-01-14 13:45:45 +05:00
2025-01-14 13:45:45 +05:00
2025-03-27 18:13:33 +05:00
2026-03-24 18:36:22 +05:00
2025-01-14 13:45:45 +05:00
2025-03-06 13:53:31 +05:00
2025-10-22 19:53:40 +05:00
2026-06-24 22:04:51 +05:00
2025-07-15 09:59:21 +05:00
2026-03-23 17:44:50 +05:00
2025-01-14 13:45:45 +05:00
2025-01-14 13:45:45 +05:00

🖥️ @coopenomics/desktop

Веб-приложение рабочего стола кооператива на Vue 3 и Quasar Framework с поддержкой SSR и SPA. Реализует интерфейс для всех участников кооператива: председателя, членов совета и пайщиков — включая регистрацию, голосование, документооборот, финансовые операции и управление кооперативом.

Основные возможности

  • Архитектура Feature Sliced Design (FSD)
  • SSR и SPA режимы (Quasar Framework)
  • Pug-шаблоны с Composition API
  • Система расширений (extensions) для модульного подключения функциональности
  • Интернационализация (Vue I18n)
  • Pinia для управления состоянием с персистентностью
  • Интеграция с блокчейном EOSIO через Wharfkit
  • Push-уведомления через Novu
  • Мониторинг через Sentry и OpenReplay

Установка

Компонент является частью монорепозитория. Установка зависимостей из корня проекта:

pnpm install

Или только для этого компонента:

pnpm install --filter @coopenomics/desktop

Скрипты

Скрипт Команда Описание
dev pnpm run dev Запуск в режиме SSR-разработки
devnet pnpm run devnet Запуск в режиме SPA-разработки
build pnpm run build Сборка SSR для production
build:spa pnpm run build:spa Сборка SPA
build:lib pnpm run build:lib Сборка как библиотеки (Vite)
lint pnpm run lint Проверка кода (ESLint)
typecheck pnpm run typecheck Проверка типов TypeScript
format pnpm run format Форматирование кода (Prettier)
start pnpm run start Запуск собранного SSR-приложения

Из корня монорепозитория:

pnpm run dev:desktop

Конфигурация

Скопируйте .env-example в .env. Основные переменные:

  • URL GraphQL API контроллера
  • Endpoint блокчейн-ноды и CHAIN_ID
  • Настройки Sentry и аналитики
  • Настройки OpenReplay и Chatwoot

Для подключения к тестовой сети используйте .env-testnet.

Подробное описание переменных — в файле .env-example.

Архитектура

Проект организован по методологии Feature Sliced Design (FSD):

src/
├── app/                   # Инициализация приложения, провайдеры
├── pages/                 # Маршрутизируемые страницы
├── widgets/               # Составные виджеты
├── features/              # Фичи (бизнес-логика UI)
├── entities/              # Доменные сущности
├── shared/                # Общие утилиты, UI-kit, конфигурация
├── processes/             # Бизнес-процессы
├── stores/                # Хранилища Pinia
├── desktops/              # Рабочие столы по ролям
├── i18n/                  # Переводы
└── boot/                  # Quasar boot-файлы
extensions/                # Подключаемые расширения
├── capital/               # Паевые взносы
├── chairman/              # Кабинет председателя
├── chatcoop/              # Чат кооператива
├── market/                # Маркетплейс
├── market-admin/          # Администрирование маркетплейса
├── participant/           # Кабинет пайщика
├── powerup/               # Управление ресурсами
└── soviet/                # Совет кооператива

Стек технологий

  • Vue 3 — Composition API
  • Quasar Framework — UI-компоненты и SSR/SPA инфраструктура
  • Pug — шаблоны компонентов
  • Pinia — управление состоянием
  • Vue Router — маршрутизация
  • Vue I18n — интернационализация
  • Wharfkit — интеграция с блокчейном EOSIO

Примечание: в режиме разработки рекомендуется SPA (quasar dev), так как SSR-режим не поддерживает рендеринг расширений из-за ограничений сериализации Pinia.

Лицензия

BY-NC-SA 4.0