bms-shared-components 1.0.0 → 1.0.1
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 +208 -92
- package/dist/bms-shared-components.css +1 -1
- package/dist/bms-shared-components.js +86399 -51
- package/dist/bms-shared-components.umd.cjs +1094 -1
- package/package.json +62 -47
package/README.md
CHANGED
|
@@ -1,92 +1,208 @@
|
|
|
1
|
-
# BMS Shared Components
|
|
2
|
-
|
|
3
|
-
Библиотека общих Vue 3 компонентов для переиспользования в различных проектах.
|
|
4
|
-
|
|
5
|
-
## Установка
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install bms-shared-components
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Использование
|
|
12
|
-
|
|
13
|
-
### Как плагин (глобальная регистрация)
|
|
14
|
-
|
|
15
|
-
```js
|
|
16
|
-
import { createApp } from "vue";
|
|
17
|
-
import App from "./App.vue";
|
|
18
|
-
import BmsSharedComponents from "bms-shared-components";
|
|
19
|
-
import "bms-shared-components/style.css";
|
|
20
|
-
|
|
21
|
-
const app = createApp(App);
|
|
22
|
-
app.use(BmsSharedComponents);
|
|
23
|
-
app.mount("#app");
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
###
|
|
27
|
-
|
|
28
|
-
```js
|
|
29
|
-
import {
|
|
30
|
-
import "
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
1
|
+
# BMS Shared Components
|
|
2
|
+
|
|
3
|
+
Библиотека общих Vue 3 компонентов для переиспользования в различных проектах.
|
|
4
|
+
|
|
5
|
+
## Установка
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install bms-shared-components
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Использование
|
|
12
|
+
|
|
13
|
+
### Как плагин (глобальная регистрация)
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
import { createApp } from "vue";
|
|
17
|
+
import App from "./App.vue";
|
|
18
|
+
import BmsSharedComponents from "bms-shared-components";
|
|
19
|
+
import "bms-shared-components/style.css";
|
|
20
|
+
|
|
21
|
+
const app = createApp(App);
|
|
22
|
+
app.use(BmsSharedComponents);
|
|
23
|
+
app.mount("#app");
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### С настройкой API при установке плагина
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
import { createApp } from "vue";
|
|
30
|
+
import App from "./App.vue";
|
|
31
|
+
import BmsSharedComponents from "bms-shared-components";
|
|
32
|
+
import "bms-shared-components/style.css";
|
|
33
|
+
|
|
34
|
+
const app = createApp(App);
|
|
35
|
+
app.use(BmsSharedComponents, {
|
|
36
|
+
apiConfig: {
|
|
37
|
+
baseURL: "https://api.example.com",
|
|
38
|
+
token: "your-auth-token",
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
app.mount("#app");
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Импорт отдельных компонентов
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
import { FullLoader } from "bms-shared-components";
|
|
48
|
+
import "bms-shared-components/style.css";
|
|
49
|
+
|
|
50
|
+
export default {
|
|
51
|
+
components: {
|
|
52
|
+
FullLoader,
|
|
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({
|
|
68
|
+
baseURL: "https://api.example.com",
|
|
69
|
+
token: "your-auth-token",
|
|
70
|
+
headers: {
|
|
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
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Лицензия
|
|
207
|
+
|
|
208
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.loader-fade-enter-active[data-v-b1f0ef8e],.loader-fade-leave-active[data-v-b1f0ef8e]{transition:opacity .3s ease}.loader-fade-enter-from[data-v-b1f0ef8e],.loader-fade-leave-to[data-v-b1f0ef8e]{opacity:0}
|
|
1
|
+
.loader-fade-enter-active[data-v-b1f0ef8e],.loader-fade-leave-active[data-v-b1f0ef8e]{transition:opacity .3s ease}.loader-fade-enter-from[data-v-b1f0ef8e],.loader-fade-leave-to[data-v-b1f0ef8e]{opacity:0}.tox-promotion-link,.tox-statusbar__branding{display:none!important}.gutter{background-color:#eee;background-repeat:no-repeat;background-position:50%}.gutter.gutter-vertical{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=)}.gutter.gutter-horizontal{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}
|