bms-shared-components
BMS Shared Components
Библиотека общих Vue 3 компонентов для переиспользования в различных проектах.
Установка
npm install bms-shared-components
Что тут есть
ReSimpleTableReSimpleSelectTheTable- Обертка над DataTableTheSelect- Был создан как обертка над Select чтобы в модель класть айди объекта а не весь объектTheDateInput- Был создан когда то как обертка над DateInput которая всегда сохраняет ISO формат датыRequestingSelect- Select поддерживающий поиск на сервереNewMkbSelectBox- компонент для быстрого поиска МКБSTableConstructorReports- Список отчетов созданных на конструкторе форм с возможностью генерации оных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
Vue component library focused on usability, accessibility and developer experien...
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 | |
| 1.1.100 | ^3.0.0 | MIT | |
| 1.1.99 | ^3.0.0 | MIT | |
| 1.1.98 | ^3.0.0 | MIT | |
| 1.1.97 | ^3.0.0 | MIT | |
| 1.1.96 | ^3.0.0 | MIT | |
| 1.1.95 | ^3.0.0 | MIT | |
| 1.1.94 | ^3.0.0 | MIT | |
| 1.1.93 | ^3.0.0 | MIT | |
| 1.1.92 | ^3.0.0 | MIT | |
| 1.1.90 | ^3.0.0 | MIT | |
| 1.1.89 | ^3.0.0 | MIT | |
| 1.1.88 | ^3.0.0 | MIT | |
| 1.1.87 | ^3.0.0 | MIT | |
| 1.1.86 | ^3.0.0 | MIT | |
| 1.1.85 | ^3.0.0 | MIT | |
| 1.1.84 | ^3.0.0 | MIT | |
| 1.1.83 | ^3.0.0 | MIT | |
| 1.1.82 | ^3.0.0 | MIT | |
| 1.1.81 | ^3.0.0 | MIT | |
| 1.1.80 | ^3.0.0 | MIT | |
| 1.1.79 | ^3.0.0 | MIT | |
| 1.1.78 | ^3.0.0 | MIT | |
| 1.1.76 | ^3.0.0 | MIT | |
| 1.1.75 | ^3.0.0 | MIT | |
| 1.1.74 | ^3.0.0 | MIT |
Showing the latest 30 of 109. See every release on npm