morghulis 1.0.16 → 1.0.18

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 CHANGED
@@ -11,18 +11,6 @@
11
11
  - 简化数据库表单创建和管理流程
12
12
  - 内置常用数据库操作UI模板
13
13
 
14
- ## 安装
15
-
16
- ```bash
17
- npm install morghulis
18
- ```
19
-
20
-
21
-
22
- ```bash
23
- yarn add morghulis
24
- ```
25
-
26
14
  ## 快速开始
27
15
 
28
16
  在你的Vue 3项目中引入并使用组件库:
@@ -32,6 +20,7 @@ yarn add morghulis
32
20
  import { createApp } from 'vue'
33
21
  import App from './App.vue'
34
22
  import { createMorghulis } from 'morghulis'
23
+ import 'morghulis/dist/style.css'
35
24
 
36
25
  const app = createApp(App)
37
26
 
@@ -45,36 +34,40 @@ app.mount('#app')
45
34
 
46
35
  ### MDialog 对话框组件
47
36
 
48
- 一个基于Element Plus Dialog的增强对话框组件,专为数据库操作设计,提供表单验证、数据预览和批量操作等功能,让数据库操作更加直观和高效。
37
+ 高度可定制的对话框组件,适用于数据库操作交互。
49
38
 
50
39
  #### 基本用法
51
40
 
52
41
  ```vue
53
42
  <template>
54
- <div>
55
- <el-button @click="dialogVisible = true">打开对话框</el-button>
56
-
57
- <MDialog
58
- v-model="dialogVisible"
59
- title="对话框标题"
60
- sub-title="副标题"
61
- :confirm="handleConfirm"
62
- >
63
- <p>这是对话框的内容</p>
64
- </MDialog>
65
- </div>
43
+ <m-dialog
44
+ v-model="dialogVisible"
45
+ title="用户信息"
46
+ sub-title="编辑用户详情"
47
+ :confirm="handleConfirm"
48
+ >
49
+ <!-- 对话框内容 -->
50
+ </m-dialog>
51
+
52
+ <el-button @click="openDialog">打开对话框</el-button>
66
53
  </template>
67
54
 
68
55
  <script setup>
69
56
  import { ref } from 'vue'
70
57
 
71
58
  const dialogVisible = ref(false)
59
+ const dialogRef = ref(null)
72
60
 
73
- const handleConfirm = () => {
61
+ function openDialog() {
62
+ // 可以通过ref调用open方法打开对话框并传递数据
63
+ dialogRef.value.open({id: 1, name: '张三'})
64
+ }
65
+
66
+ function handleConfirm(data, done) {
74
67
  // 处理确认逻辑
75
- console.log('确认')
76
- dialogVisible.value = false
77
- return Promise.resolve()
68
+ console.log('提交的数据:', data)
69
+ // 完成后关闭对话框
70
+ done()
78
71
  }
79
72
  </script>
80
73
  ```
@@ -83,17 +76,36 @@ const handleConfirm = () => {
83
76
 
84
77
  | 属性名 | 类型 | 默认值 | 说明 |
85
78
  | --- | --- | --- | --- |
86
- | modelValue / v-model | boolean | false | 控制对话框是否显示 |
79
+ | modelValue | boolean | false | 控制对话框显示/隐藏 |
87
80
  | title | string | '对话框' | 对话框标题 |
88
- | subTitle | string | - | 对话框副标题 |
89
- | width | string / number | 600 | 对话框宽度 |
81
+ | subTitle | string | '' | 对话框副标题 |
82
+ | width | string/number | 600 | 对话框宽度 |
90
83
  | fullscreen | boolean | false | 是否全屏显示 |
91
- | confirm | Function | - | 确认按钮点击时的回调函数,返回Promise |
92
- | cancel | Function | - | 取消按钮点击时的回调函数 |
84
+ | top | string | '30px' | 对话框距离顶部的距离 |
85
+ | modal | boolean | true | 是否显示遮罩层 |
86
+ | modalClass | string | 'mor-dialog-modal' | 遮罩层的自定义类名 |
87
+ | headerClass | string | 'mor-dialog-header' | 头部的自定义类名 |
88
+ | bodyClass | string | 'mor-dialog-body-wrapper' | 内容区的自定义类名 |
89
+ | footerClass | string | 'mor-dialog-footer' | 底部的自定义类名 |
90
+ | appendToBody | boolean | true | 是否将对话框插入至body元素 |
91
+ | lockScroll | boolean | true | 是否在对话框出现时将body滚动锁定 |
92
+ | closeOnClickModal | boolean | true | 是否可以通过点击遮罩层关闭对话框 |
93
+ | closeOnPressEscape | boolean | true | 是否可以通过按下ESC键关闭对话框 |
94
+ | showClose | boolean | true | 是否显示关闭按钮 |
95
+ | draggable | boolean | false | 是否可拖拽 |
96
+ | center | boolean | false | 是否对头部和底部采用居中布局 |
97
+ | destroyOnClose | boolean | false | 关闭时是否销毁对话框内的元素 |
98
+ | confirm | Function | - | 确认按钮点击时的回调函数,参数为(data, done) |
99
+ | cancel | Function | - | 取消按钮点击时的回调函数,参数为(data, done) |
93
100
  | confirmButtonText | string | '确定' | 确认按钮文本 |
94
101
  | cancelButtonText | string | '取消' | 取消按钮文本 |
95
102
 
96
- 组件还支持Element Plus Dialog的所有属性。
103
+ #### 方法
104
+
105
+ | 方法名 | 参数 | 说明 |
106
+ | --- | --- | --- |
107
+ | open | (data, config) | 打开对话框并传入数据,config可选,包含title和subTitle |
108
+ | close | - | 关闭对话框 |
97
109
 
98
110
  #### 插槽
99
111
 
@@ -105,20 +117,221 @@ const handleConfirm = () => {
105
117
  | header | 自定义头部区域 |
106
118
  | footer | 自定义底部区域 |
107
119
 
120
+ ## Hooks
121
+
122
+ ### useMorghulisCookies
123
+
124
+ 提供Cookie操作的工具函数。
125
+
126
+ ```js
127
+ import { useMorghulisCookies } from 'morghulis'
128
+
129
+ const { get, set, remove, load } = useMorghulisCookies()
130
+
131
+ // 设置Cookie
132
+ set('user.name', '张三')
133
+
134
+ // 获取Cookie
135
+ const userName = get('user.name')
136
+
137
+ // 加载Cookie,如果不存在则设置默认值
138
+ const config = load('config', { theme: 'dark' })
139
+
140
+ // 删除Cookie
141
+ remove('user.name')
142
+ ```
143
+
144
+ #### 方法
145
+
146
+ | 方法名 | 参数 | 返回值 | 说明 |
147
+ | --- | --- | --- | --- |
148
+ | get | (path: string) | any | 获取指定路径的Cookie值 |
149
+ | set | (path: string, value?: any) | void | 设置指定路径的Cookie值 |
150
+ | load | (key: string, value?: any) | any | 获取指定键的Cookie值,如果不存在则设置默认值 |
151
+ | remove | (path: string) | void | 删除指定路径的Cookie值 |
152
+
153
+ ### useMorghulisAuthorize
154
+
155
+ 提供用户授权相关的工具函数。
156
+
157
+ ```js
158
+ import { useMorghulisAuthorize } from 'morghulis'
159
+
160
+ const { $client, user, check, login, logout, bearer } = useMorghulisAuthorize()
161
+
162
+ // 获取当前用户ID
163
+ const currentUser = user()
164
+
165
+ // 检查是否为指定用户
166
+ const isAdmin = check('admin')
167
+
168
+ // 登录
169
+ login('user123')
170
+
171
+ // 登出
172
+ logout()
173
+
174
+ // 获取Bearer令牌
175
+ const token = bearer()
176
+ ```
177
+
178
+ #### 方法和属性
179
+
180
+ | 名称 | 类型 | 说明 |
181
+ | --- | --- | --- |
182
+ | $client | string | 客户端唯一标识 |
183
+ | user | Function | 获取当前用户ID |
184
+ | check | Function | 检查当前用户是否为指定用户 |
185
+ | login | Function | 设置用户登录状态 |
186
+ | logout | Function | 清除用户登录状态 |
187
+ | bearer | Function | 获取Bearer认证令牌 |
188
+
189
+ ### useMorghulisChannel
190
+
191
+ 提供通道相关的工具函数。
192
+
193
+ ```js
194
+ import { useMorghulisChannel } from 'morghulis'
195
+
196
+ const { http } = useMorghulisChannel('/api')
197
+
198
+ // 使用http发送请求
199
+ http.get('/users').then(response => {
200
+ console.log(response.data)
201
+ })
202
+ ```
203
+
204
+ #### 方法
205
+
206
+ | 方法名 | 返回值 | 说明 |
207
+ | --- | --- | --- |
208
+ | http | AxiosInstance | 返回配置好的Axios实例 |
209
+
210
+ ### useMorghulisRequest
211
+
212
+ 提供请求相关的工具函数。
213
+
214
+ ```js
215
+ import { useMorghulisRequest } from 'morghulis'
216
+
217
+ const { getRequest } = useMorghulisRequest('/api')
218
+
219
+ // 获取配置好的请求实例
220
+ const http = getRequest()
221
+
222
+ // 发送请求
223
+ http.get('/users').then(response => {
224
+ console.log(response.data)
225
+ })
226
+ ```
227
+
228
+ #### 方法
229
+
230
+ | 方法名 | 参数 | 返回值 | 说明 |
231
+ | --- | --- | --- | --- |
232
+ | getRequest | (auth?: boolean) | AxiosInstance | 获取配置好的Axios实例,auth参数指定是否需要认证 |
233
+
234
+ ## 工具函数
235
+
236
+ ### $message
237
+
238
+ 提供消息提示功能。
239
+
240
+ ```js
241
+ import { $message } from 'morghulis'
242
+
243
+ // 成功提示
244
+ $message.success('操作成功')
245
+
246
+ // 信息提示
247
+ $message.info('提示信息')
248
+
249
+ // 警告提示
250
+ $message.warning('警告信息')
251
+
252
+ // 错误提示
253
+ $message.error('错误信息')
254
+ ```
255
+
256
+ #### 方法
257
+
258
+ | 方法名 | 参数 | 说明 |
259
+ | --- | --- | --- |
260
+ | info | (message: string) | 显示信息提示 |
261
+ | success | (message: string) | 显示成功提示 |
262
+ | warning | (message: string) | 显示警告提示 |
263
+ | error | (message: string) | 显示错误提示 |
264
+
265
+ ### $alert
266
+
267
+ 提供警告对话框功能。
268
+
269
+ ```js
270
+ import { $alert } from 'morghulis'
271
+
272
+ // 成功提示
273
+ $alert.success('操作成功', '提示').then(() => {
274
+ // 点击确定按钮后的回调
275
+ })
276
+
277
+ // 信息提示
278
+ $alert.info('提示信息')
279
+
280
+ // 警告提示
281
+ $alert.warning('警告信息', '警告')
282
+
283
+ // 错误提示
284
+ $alert.error('错误信息', '错误')
285
+ ```
286
+
287
+ #### 方法
288
+
289
+ | 方法名 | 参数 | 返回值 | 说明 |
290
+ | --- | --- | --- | --- |
291
+ | info | (message: string, title?: string) | Promise | 显示信息警告框 |
292
+ | success | (message: string, title?: string) | Promise | 显示成功警告框 |
293
+ | warning | (message: string, title?: string) | Promise | 显示警告警告框 |
294
+ | error | (message: string, title?: string) | Promise | 显示错误警告框 |
295
+
296
+ ### $confirm
297
+
298
+ 提供确认对话框功能。
299
+
300
+ ```js
301
+ import { $confirm } from 'morghulis'
302
+
303
+ // 确认操作
304
+ $confirm.warning('确定要删除吗?', '警告').then(() => {
305
+ // 点击确定按钮后的回调
306
+ }).catch(() => {
307
+ // 点击取消按钮后的回调
308
+ })
309
+ ```
310
+
311
+ #### 方法
312
+
313
+ | 方法名 | 参数 | 返回值 | 说明 |
314
+ | --- | --- | --- | --- |
315
+ | info | (message: string, title?: string) | Promise | 显示信息确认框 |
316
+ | success | (message: string, title?: string) | Promise | 显示成功确认框 |
317
+ | warning | (message: string, title?: string) | Promise | 显示警告确认框 |
318
+ | error | (message: string, title?: string) | Promise | 显示错误确认框 |
319
+
108
320
  ## 配置选项
109
321
 
110
- 创建Morghulis实例时可以传入配置选项:
322
+ 在使用`createMorghulis`函数时,可以传入以下配置选项:
111
323
 
112
324
  ```js
113
325
  app.use(createMorghulis({
114
- baseUrl: 'https://api.example.com',
115
- timeout: 5000,
116
- headers: {
117
- 'X-Custom-Header': 'value'
118
- }
326
+ baseURL: '/api/', // API基础路径
327
+ minioURL: '/dfs/', // 文件服务基础路径
328
+ // 其他配置...
119
329
  }))
120
330
  ```
121
331
 
122
- ## 许可证
123
-
124
- MIT
332
+ | 选项名 | 类型 | 默认值 | 说明 |
333
+ | --- | --- | --- | --- |
334
+ | baseURL | string | '/api/' | API基础路径 |
335
+ | minioURL | string | '/dfs/' | 文件服务基础路径 |
336
+ | timeout | number | - | 请求超时时间 |
337
+ | headers | object | - | 请求头配置 |