@epie/bi-crud 2.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.
Files changed (62) hide show
  1. package/README.md +226 -0
  2. package/dist/demo.html +1 -0
  3. package/dist/index.common.js +15761 -0
  4. package/dist/index.common.js.map +1 -0
  5. package/dist/index.css +1 -0
  6. package/dist/index.umd.js +15788 -0
  7. package/dist/index.umd.js.map +1 -0
  8. package/dist/index.umd.min.js +20 -0
  9. package/dist/index.umd.min.js.map +1 -0
  10. package/index.d.ts +479 -0
  11. package/package.json +39 -0
  12. package/types/components/add-btn.d.ts +2 -0
  13. package/types/components/adv-btn.d.ts +2 -0
  14. package/types/components/adv-search.d.ts +48 -0
  15. package/types/components/context-menu/context-menu.d.ts +44 -0
  16. package/types/components/context-menu/index.d.ts +55 -0
  17. package/types/components/crud/helper.d.ts +15 -0
  18. package/types/components/crud/index.d.ts +184 -0
  19. package/types/components/custom-column.d.ts +37 -0
  20. package/types/components/dialog/index.d.ts +79 -0
  21. package/types/components/error-message.d.ts +6 -0
  22. package/types/components/filter-group.d.ts +41 -0
  23. package/types/components/filter.d.ts +6 -0
  24. package/types/components/flex1.d.ts +2 -0
  25. package/types/components/form/helper.d.ts +28 -0
  26. package/types/components/form/index.d.ts +11 -0
  27. package/types/components/form-tabs.d.ts +44 -0
  28. package/types/components/index.d.ts +2 -0
  29. package/types/components/multi-delete-btn.d.ts +2 -0
  30. package/types/components/pagination.d.ts +9 -0
  31. package/types/components/query.d.ts +35 -0
  32. package/types/components/refresh-btn.d.ts +2 -0
  33. package/types/components/search-key.d.ts +41 -0
  34. package/types/components/table/helper.d.ts +23 -0
  35. package/types/components/table/index.d.ts +59 -0
  36. package/types/components/upsert/index.d.ts +58 -0
  37. package/types/emitter.d.ts +3 -0
  38. package/types/hooks/browser.d.ts +4 -0
  39. package/types/hooks/core.d.ts +13 -0
  40. package/types/hooks/crud.d.ts +13 -0
  41. package/types/hooks/form.d.ts +6 -0
  42. package/types/hooks/index.d.ts +4 -0
  43. package/types/hooks/proxy.d.ts +1 -0
  44. package/types/index.d.ts +10 -0
  45. package/types/types/adv-search.d.ts +16 -0
  46. package/types/types/browser.d.ts +4 -0
  47. package/types/types/context-menu.d.ts +26 -0
  48. package/types/types/crud.d.ts +137 -0
  49. package/types/types/element-plus.d.ts +15 -0
  50. package/types/types/emitter.d.ts +16 -0
  51. package/types/types/form.d.ts +112 -0
  52. package/types/types/hook.d.ts +18 -0
  53. package/types/types/index.d.ts +1 -0
  54. package/types/types/render.d.ts +17 -0
  55. package/types/types/table.d.ts +91 -0
  56. package/types/types/test.d.ts +3 -0
  57. package/types/types/upsert.d.ts +29 -0
  58. package/types/utils/index.d.ts +18 -0
  59. package/types/utils/mitt.d.ts +9 -0
  60. package/types/utils/parse.d.ts +8 -0
  61. package/types/utils/test.d.ts +23 -0
  62. package/types/utils/vnode.d.ts +16 -0
package/README.md ADDED
@@ -0,0 +1,226 @@
1
+ # Bi-Crud
2
+
3
+ 快速完成页面 CRUD 操作的高阶组件
4
+
5
+ 支持功能:
6
+
7
+ - 条件过滤
8
+ - 条件查询
9
+ - 关键字搜索
10
+ - 高级搜索
11
+ - 新增、编辑动态表单配置
12
+ - 自定义表单
13
+ - 可拖拽、全屏对话框
14
+ - 数据表格右键菜单
15
+ - 按钮级权限控制
16
+ - 多种渲染方式,jsx、函数式、组件实例、组件名
17
+
18
+ ## 参数
19
+
20
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
21
+ | ---------- | -------------- | ---------------------------------------- | ------ | ------ |
22
+ | on-refresh | 刷新表格的钩子 | function(params, { next, done, render }) | | |
23
+ | on-delete | 删除时的钩子 | function(selection, { next }) | | |
24
+ | border | 是否带有边框 | boolean | | false |
25
+
26
+ `on-refresh` 示例
27
+
28
+ ```html
29
+ <cl-crud :on-refresh="onRefresh"></cl-crud>
30
+ ```
31
+
32
+ ```js
33
+ export default {
34
+ methods: {
35
+ async onRefresh(params, { next, done, render }) {
36
+ // params 是每次请求的参数
37
+ // next(params) 是继续往下执行 page 的请求
38
+ // done() 完成请求,关闭loading
39
+ // render(list, pagination) 渲染列表及分页信息
40
+
41
+ let { list, pagination } = await next({
42
+ ...params,
43
+ ...额外的参数
44
+ });
45
+
46
+ list.map(e => {
47
+ e.name += "先生";
48
+ });
49
+
50
+ render(list);
51
+
52
+ // 也可以不使用 next,用其他 service 代替,但是 render 就要设置分页信息:
53
+ render(list, {
54
+ page: "第几页",
55
+ size: "每页数量",
56
+ total: "总数"
57
+ });
58
+ }
59
+ }
60
+ };
61
+ ```
62
+
63
+ `on-delete` 示例
64
+
65
+ ```html
66
+ <cl-crud :on-delete="onDelete"></cl-crud>
67
+ ```
68
+
69
+ ```js
70
+ export default {
71
+ methods: {
72
+ onDelete(selection, {next}) {
73
+ // selection 行选择列表,默认
74
+ // next(params) 是继续往下执行 delete 的请求
75
+
76
+ // 默认根据表id来删除,你也可以修改成其他
77
+ next(selection.map(e => e.id))
78
+ }
79
+ }
80
+ };
81
+ ```
82
+
83
+ ## 方法
84
+
85
+ | 方法名 | 说明 | 参数 |
86
+ | -------------- | ---------------------------------- | --------- |
87
+ | getPermission | 获取 add, update, delele 的权限 | key |
88
+ | getParams | 获取 请求参数 | |
89
+ | rowAdd | 以新增方式打开表单 | |
90
+ | rowAppend | 以新增方式打开表单,并追加一些数据 | data |
91
+ | rowEdit | 以编辑方法打开表单 | data |
92
+ | rowClose | 关闭表单 | |
93
+ | rowDelete | 删除请求 | selection |
94
+ | openAdvSearch | 打开高级搜索 | |
95
+ | closeAdvSearch | 关闭高级搜索 | |
96
+ | refresh | 刷新请求 | params |
97
+
98
+ ## 事件
99
+
100
+ | 事件名 | 说明 | 回调参数 |
101
+ | ------ | -------------- | ------------ |
102
+ | load | 组件加载完事件 | { app, ctx } |
103
+
104
+ ```html
105
+ <template>
106
+ <cl-crud @load="onLoad"></cl-crud>
107
+ </template>
108
+
109
+ <script>
110
+ export default {
111
+ methods: {
112
+ onLoad({ ctx, app }) {
113
+ // 配置方法
114
+ ctx
115
+ // 配置请求,返回必须为 Promise。可直接继承 BaseService,它包含了基本的6个接口
116
+ .service({
117
+ // 分页列表
118
+ page({ page, size, ... }) {
119
+ return Promise.resolve({
120
+ // 数据列表
121
+ list: [],
122
+ // 分页信息
123
+ pagination: {
124
+ total: 8,
125
+ size: 20,
126
+ page: 1
127
+ }
128
+ })
129
+ },
130
+ // 全部列表
131
+ list() {
132
+ return Promise.resolve([ /* 数据列表 */ ])
133
+ },
134
+ // 新增
135
+ add(data) {
136
+ return Promise.resolve()
137
+ },
138
+ // 更新,包含 id
139
+ update(data) {
140
+ return Promise.resolve()
141
+ },
142
+ // 详情,传行 id
143
+ info({ id }) {
144
+ return Promise.resolve({ /* 用户信息 */ })
145
+ },
146
+ // 删除,ids = [1, 2, 3]
147
+ delete({ ids }) {
148
+ return Promise.resolve()
149
+ },
150
+ })
151
+ // 设置按钮权限,新增,编辑,删除。框架默认判断了。当然你也可以自定义
152
+ .permission({
153
+ add: true,
154
+ update: true,
155
+ delete: true
156
+ })
157
+ // 设置参数,例如 dict 字典
158
+ .set('dict', {
159
+ // 字典
160
+ dict: {
161
+ // 请求
162
+ api: {
163
+ list: 'list', // 全部数据
164
+ add: 'add', // 新增
165
+ update: 'update', // 修改
166
+ delete: 'delete', // 删除
167
+ info: 'info', // 详情
168
+ page: 'page', // 分页
169
+ },
170
+ // 分页参数
171
+ pagination: {
172
+ page: 'page', // 页数
173
+ size: 'size', // 每页显示的条目
174
+ },
175
+ // 搜索
176
+ search: {
177
+ keyWord: 'keyWord', // 模糊查询的关键字
178
+ query: 'catecory', // 类目
179
+ },
180
+ // 排序
181
+ sort: {
182
+ order: 'sort', // 排序方式
183
+ prop: 'order', // 排序关键字
184
+ },
185
+ // 标签
186
+ label: {
187
+ add: "新增",
188
+ delete: "删除",
189
+ multiDelete: "删除",
190
+ update: "编辑",
191
+ refresh: "刷新",
192
+ advSearch: "高级搜索",
193
+ saveButtonText: "保存",
194
+ closeButtonText: "关闭"
195
+ }
196
+ },
197
+ })
198
+ // 完成配置,开始渲染
199
+ .done()
200
+
201
+ // 加载完组件是否发起 page 请求
202
+ app.refresh({
203
+ // 可以填入请求默认值
204
+ })
205
+ }
206
+ }
207
+ }
208
+ </script>
209
+ ```
210
+
211
+ ### ctx
212
+
213
+ | 方法名 | 说明 | 参数 |
214
+ | ---------- | -------------------------------- | ----------------------------------------------- |
215
+ | service | 设置请求服务 | { page?, list?, update?, info?, add?, delete? } |
216
+ | permission | 设置权限,默认根据 permmenu 配置 | { add, update, delete } |
217
+ | set | 设置其他参数 | { dict, } |
218
+ | on | 监听事件 | { name, callback } |
219
+ | once | 监听事件(只监听一次) | { name, callback } |
220
+ | done | 完成配置,开始渲染 | |
221
+
222
+ ### app
223
+
224
+ | 方法名 | 说明 | 参数 |
225
+ | ------- | ---------------------------- | ------ |
226
+ | refresh | 刷新表格,默认调用 page 接口 | params |
package/dist/demo.html ADDED
@@ -0,0 +1 @@
1
+ <!doctype html><meta charset="utf-8"><title>index demo</title><script src="./index.umd.js"></script><link rel="stylesheet" href="./index.css"><script>console.log(index)</script>