bms-shared-components

Shared Vue 3 components library
17,668
Install
npm install bms-shared-components
Latest Version:1.1.107
Vue:3
License:MIT
Last Updated:Aug 31, 2026
Links: npm
Maintainer: chimitovz

BMS Shared Components

Библиотека общих Vue 3 компонентов для переиспользования в различных проектах.

Установка

npm install bms-shared-components

Что тут есть

  • ReSimpleTable
  • ReSimpleSelect
  • TheTable - Обертка над DataTable
  • TheSelect - Был создан как обертка над Select чтобы в модель класть айди объекта а не весь объект
  • TheDateInput - Был создан когда то как обертка над DateInput которая всегда сохраняет ISO формат даты
  • RequestingSelect - Select поддерживающий поиск на сервере
  • NewMkbSelectBox - компонент для быстрого поиска МКБ
  • STable
  • ConstructorReports - Список отчетов созданных на конструкторе форм с возможностью генерации оных
  • ConstructorReportsQueue - Просмотр очереди отчетов (созданных на конструкторе форм и добавленных в очередь на формирование)
  • ScanWriteOffMedicalDevicesFormMDLP - Списание мед. изделий и препаратов посредством документов выбытия

Использование

Как плагин (рекомендуется)

Компоненты используют Pinia через provide/inject (без глобальной регистрации). Передайте pinia при установке:

import { createApp } from "vue";
import { createPinia } from "pinia";
import App from "./App.vue";
import BmsSharedComponents from "bms-shared-components";
import "bms-shared-components/style.css";

const pinia = createPinia();
const app = createApp(App);
app.use(BmsSharedComponents, { pinia });
app.mount("#app");

С настройкой API и Pinia

При использовании плагина по умолчанию (BmsSharedComponents) поддерживаются apiConfig и axiosConfig:

import { createApp } from "vue";
import { createPinia } from "pinia";
import App from "./App.vue";
import BmsSharedComponents from "bms-shared-components";
import "bms-shared-components/style.css";

const pinia = createPinia();
const app = createApp(App);
app.use(BmsSharedComponents, {
  pinia,
  apiConfig: {
    baseURL: "https://api.example.com",
    token: "your-auth-token",
  },
  // или axiosConfig:
  // axiosConfig: { baseURL: "...", headers: { Authorization: "..." } },
});
app.mount("#app");

createBmsComponentsPlugin

Плагин принимает pinia и axiosInstance (конфиг для setupAxios):

import { createApp } from "vue";
import { createPinia } from "pinia";
import { createBmsComponentsPlugin } from "bms-shared-components";
import "bms-shared-components/style.css";

const hostPinia = createPinia();
const libPinia = createPinia();
const app = createApp(App);
app.use(hostPinia); // pinia хоста
app.use(
  createBmsComponentsPlugin({
    pinia: libPinia, // отдельный pinia для библиотеки
    axiosInstance: {
      baseURL: "https://api.example.com",
      headers: { Authorization: "Bearer your-jwt-token" },
    },
  }),
);
app.mount("#app");

Плагин использует свой экземпляр Pinia через provide, без app.use. Хост и библиотека — разные экземпляры, данные не пересекаются.

Синхронизация useUserStore с хостом: после логина в хосте вызывайте useUserStore(libPinia).setUser(user) — передайте libPinia (pinia библиотеки).

import { useUserStore as useUserStoreBMS, useStockStore as useStockStoreBMS } from "bms-shared-components";
// ...
useUserStoreBMS(window.libPinia).setUser(newUser);

// ...
useUserStoreBMS(window.libPinia).setUser(null);

Доступны глобально: $setupAxios, $updateAxiosToken.

Разработка

Используем библиотеку в проекте без обновления во время разработки

1. Билдим библиотеку
npm run build:lib
2. Создаем глобальную ссылку для нашей либы
npm link
3. В нужном проекте (например в web-mis-bms) создаём локальную ссылку и привязываемся к глобальной созданной ссылке
npm link bms-shared-components
Как итог, мы можем тестировать новые фичи нашей библиотеки сразу в проекте
Если в библиотеке что то поменялось - нужно перебилдить проект
Узнать какие есть глобальные ссылки
npm ls --global --link
Чтобы отвязать локальную ссылку у проекта от глобальной надо выполнить команду
npm unlink bms-shared-components
Чтобы убрать глобальную ссылку bms-shared-components надо выполнить команду
npm unlink --global bms-shared-components
Пишет что нет моего компонента, что-то не так с стилями или компонент странно себя ведёт

Попробуй удалить node_modules/.vite или выполнив команду удаления в проекте

rm -rf node_modules/.vite

Related Packages

mesh-ui-components

UI Component library

9,059
@a2simcode/ui

A Vue 3 UI Component Library

63,028
ketekny-ui-kit

A Vue 3 UI component library with Tailwind CSS styling

25,243
@cck-ui/core

Vue component library focused on usability, accessibility and developer experien...

15,519 0
@touchvue/ui

TouchVue UI Component Library

9,597

Version History

Version Released Vue License
1.1.107 ^3.0.0 MIT
1.1.106 ^3.0.0 MIT
1.1.104 ^3.0.0 MIT
1.1.103 ^3.0.0 MIT
1.1.101 ^3.0.0 MIT