bms-shared-components 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -162
- package/dist/bms-shared-components.css +1 -1
- package/dist/bms-shared-components.js +14646 -14248
- package/dist/bms-shared-components.umd.cjs +187 -179
- package/package.json +2 -1
- package/dist/assets/index-DniQ-z3d.css +0 -1
- package/dist/assets/index-QdL_SqUl.js +0 -1138
- package/dist/index.html +0 -14
package/README.md
CHANGED
|
@@ -8,201 +8,76 @@
|
|
|
8
8
|
npm install bms-shared-components
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Что тут есть
|
|
12
|
+
|
|
13
|
+
- `ReSimpleTable`
|
|
14
|
+
- `ReSimpleSelect`
|
|
15
|
+
- `TheTable` - Обертка над DataTable
|
|
16
|
+
- `TheSelect` - Был создан как обертка над Select чтобы в модель класть айди объекта а не весь объект
|
|
17
|
+
- `TheDateInput` - Был создан когда то как обертка над DateInput которая всегда сохраняет ISO формат даты
|
|
18
|
+
- `RequestingSelect` - Select поддерживающий поиск на сервере
|
|
19
|
+
- `NewMkbSelectBox` - компонент для быстрого поиска МКБ
|
|
20
|
+
- `STable`
|
|
21
|
+
- `ConstructorReports` - Список отчетов созданных на конструкторе форм с возможностью генерации оных
|
|
22
|
+
- `ConstructorReportsQueue` - Просмотр очереди отчетов (созданных на конструкторе форм и добавленных в очередь на формирование)
|
|
23
|
+
- `ScanWriteOffMedicalDevicesFormMDLP` - Списание мед. изделий и препаратов посредством документов выбытия
|
|
24
|
+
|
|
11
25
|
## Использование
|
|
12
26
|
|
|
13
|
-
### Как плагин (
|
|
27
|
+
### Как плагин (рекомендуется)
|
|
28
|
+
|
|
29
|
+
Компоненты используют Pinia через **provide/inject** (без глобальной регистрации). Передайте `pinia` при установке:
|
|
14
30
|
|
|
15
31
|
```js
|
|
16
32
|
import { createApp } from "vue";
|
|
33
|
+
import { createPinia } from "pinia";
|
|
17
34
|
import App from "./App.vue";
|
|
18
35
|
import BmsSharedComponents from "bms-shared-components";
|
|
19
36
|
import "bms-shared-components/style.css";
|
|
20
37
|
|
|
38
|
+
const pinia = createPinia();
|
|
21
39
|
const app = createApp(App);
|
|
22
|
-
app.use(BmsSharedComponents);
|
|
40
|
+
app.use(BmsSharedComponents, { pinia });
|
|
23
41
|
app.mount("#app");
|
|
24
42
|
```
|
|
25
43
|
|
|
26
|
-
### С настройкой API
|
|
44
|
+
### С настройкой API и Pinia
|
|
27
45
|
|
|
28
46
|
```js
|
|
29
47
|
import { createApp } from "vue";
|
|
48
|
+
import { createPinia } from "pinia";
|
|
30
49
|
import App from "./App.vue";
|
|
31
50
|
import BmsSharedComponents from "bms-shared-components";
|
|
32
51
|
import "bms-shared-components/style.css";
|
|
33
52
|
|
|
53
|
+
const pinia = createPinia();
|
|
34
54
|
const app = createApp(App);
|
|
35
55
|
app.use(BmsSharedComponents, {
|
|
56
|
+
pinia,
|
|
36
57
|
apiConfig: {
|
|
37
58
|
baseURL: "https://api.example.com",
|
|
38
59
|
token: "your-auth-token",
|
|
39
60
|
},
|
|
61
|
+
// или axiosConfig (рекомендуется):
|
|
62
|
+
// axiosConfig: { baseURL: "...", headers: { Authorization: "..." } },
|
|
40
63
|
});
|
|
41
64
|
app.mount("#app");
|
|
42
65
|
```
|
|
43
66
|
|
|
44
|
-
###
|
|
67
|
+
### Через createBmsComponentsPlugin
|
|
45
68
|
|
|
46
69
|
```js
|
|
47
|
-
import {
|
|
70
|
+
import { createApp } from "vue";
|
|
71
|
+
import { createPinia } from "pinia";
|
|
72
|
+
import { createBmsComponentsPlugin } from "bms-shared-components";
|
|
48
73
|
import "bms-shared-components/style.css";
|
|
49
74
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Настройка API
|
|
58
|
-
|
|
59
|
-
Если ваши компоненты будут обращаться к API, необходимо настроить базовый URL и токен авторизации.
|
|
60
|
-
|
|
61
|
-
### Настройка с помощью configureApi
|
|
62
|
-
|
|
63
|
-
```js
|
|
64
|
-
import { configureApi } from "bms-shared-components";
|
|
65
|
-
|
|
66
|
-
// Настройка API перед использованием компонентов
|
|
67
|
-
configureApi({
|
|
75
|
+
const pinia = createPinia();
|
|
76
|
+
const app = createApp(App);
|
|
77
|
+
app.use(createBmsComponentsPlugin({
|
|
78
|
+
pinia,
|
|
68
79
|
baseURL: "https://api.example.com",
|
|
69
|
-
token: "your-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"Custom-Header": "value",
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Обновление токена
|
|
78
|
-
|
|
79
|
-
```js
|
|
80
|
-
import { updateToken } from "bms-shared-components";
|
|
81
|
-
|
|
82
|
-
// Обновить токен авторизации
|
|
83
|
-
updateToken("new-auth-token");
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Получение текущей конфигурации
|
|
87
|
-
|
|
88
|
-
```js
|
|
89
|
-
import { getApiConfig } from "bms-shared-components";
|
|
90
|
-
|
|
91
|
-
const config = getApiConfig();
|
|
92
|
-
console.log(config.baseURL); // текущий базовый URL
|
|
93
|
-
console.log(config.token); // текущий токен
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Композаблы
|
|
97
|
-
|
|
98
|
-
### useAxios
|
|
99
|
-
|
|
100
|
-
Композабл для выполнения HTTP запросов с использованием настроенной конфигурации API.
|
|
101
|
-
|
|
102
|
-
```vue
|
|
103
|
-
<template>
|
|
104
|
-
<div>
|
|
105
|
-
<button @click="loadData" :disabled="loading">Загрузить данные</button>
|
|
106
|
-
|
|
107
|
-
<div v-if="loading">Загрузка...</div>
|
|
108
|
-
<div v-if="error">Ошибка: {{ error }}</div>
|
|
109
|
-
<div v-if="data">
|
|
110
|
-
<pre>{{ JSON.stringify(data, null, 2) }}</pre>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
</template>
|
|
114
|
-
|
|
115
|
-
<script setup>
|
|
116
|
-
import { useAxios } from "bms-shared-components";
|
|
117
|
-
|
|
118
|
-
const { loading, error, data, get, post, put, delete: del } = useAxios();
|
|
119
|
-
|
|
120
|
-
async function loadData() {
|
|
121
|
-
try {
|
|
122
|
-
// GET запрос
|
|
123
|
-
await get("/api/users");
|
|
124
|
-
|
|
125
|
-
// POST запрос
|
|
126
|
-
// await post("/api/users", { name: "John", email: "john@example.com" });
|
|
127
|
-
|
|
128
|
-
// PUT запрос
|
|
129
|
-
// await put("/api/users/1", { name: "Jane" });
|
|
130
|
-
|
|
131
|
-
// DELETE запрос
|
|
132
|
-
// await del("/api/users/1");
|
|
133
|
-
} catch (err) {
|
|
134
|
-
console.error("Ошибка запроса:", err);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
</script>
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
#### Возвращаемые значения useAxios
|
|
141
|
-
|
|
142
|
-
- `loading` - реактивное значение состояния загрузки
|
|
143
|
-
- `error` - реактивное значение с текстом ошибки
|
|
144
|
-
- `data` - реактивное значение с данными ответа
|
|
145
|
-
- `request(url, options)` - универсальный метод запроса
|
|
146
|
-
- `get(url, options)` - GET запрос
|
|
147
|
-
- `post(url, body, options)` - POST запрос
|
|
148
|
-
- `put(url, body, options)` - PUT запрос
|
|
149
|
-
- `delete(url, options)` - DELETE запрос
|
|
150
|
-
|
|
151
|
-
## Компоненты
|
|
152
|
-
|
|
153
|
-
### FullLoader
|
|
154
|
-
|
|
155
|
-
Компонент полноэкранного загрузчика с красивой анимацией.
|
|
156
|
-
|
|
157
|
-
#### Пропсы
|
|
158
|
-
|
|
159
|
-
- `modelValue` (Boolean) - управляет видимостью загрузчика
|
|
160
|
-
- `minShowTime` (Number) - минимальное время показа в миллисекундах (по умолчанию 750)
|
|
161
|
-
|
|
162
|
-
#### Пример использования
|
|
163
|
-
|
|
164
|
-
```vue
|
|
165
|
-
<template>
|
|
166
|
-
<div>
|
|
167
|
-
<button @click="showLoader = true">Показать загрузчик</button>
|
|
168
|
-
|
|
169
|
-
<FullLoader v-model="showLoader"> Загружаем данные... </FullLoader>
|
|
170
|
-
</div>
|
|
171
|
-
</template>
|
|
172
|
-
|
|
173
|
-
<script setup>
|
|
174
|
-
import { ref } from "vue";
|
|
175
|
-
import { FullLoader } from "bms-shared-components";
|
|
176
|
-
|
|
177
|
-
const showLoader = ref(false);
|
|
178
|
-
|
|
179
|
-
// Автоматически скрыть через 3 секунды
|
|
180
|
-
setTimeout(() => {
|
|
181
|
-
showLoader.value = false;
|
|
182
|
-
}, 3000);
|
|
183
|
-
</script>
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
## Примеры
|
|
187
|
-
|
|
188
|
-
Полные примеры использования смотрите в папке `example/`.
|
|
189
|
-
|
|
190
|
-
## Разработка
|
|
191
|
-
|
|
192
|
-
```bash
|
|
193
|
-
# Установка зависимостей
|
|
194
|
-
npm install
|
|
195
|
-
|
|
196
|
-
# Запуск в режиме разработки
|
|
197
|
-
npm run dev
|
|
198
|
-
|
|
199
|
-
# Сборка библиотеки
|
|
200
|
-
npm run build:lib
|
|
201
|
-
|
|
202
|
-
# Публикация
|
|
203
|
-
npm publish
|
|
80
|
+
token: "your-jwt-token",
|
|
81
|
+
}));
|
|
82
|
+
app.mount("#app");
|
|
204
83
|
```
|
|
205
|
-
|
|
206
|
-
## Лицензия
|
|
207
|
-
|
|
208
|
-
MIT
|