0.11.3 • Published 2 years ago

cl-admin-crud-vue3 v0.11.3

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

Crud

文档地址:https://cool-js.com/front/vue.html

快速完成页面 CRUD 操作的高阶组件

支持功能:

  • 条件过滤
  • 条件查询
  • 关键字搜索
  • 高级搜索
  • 新增、编辑动态表单配置
  • 自定义表单
  • 可拖拽、全屏对话框
  • 数据表格右键菜单
  • 按钮级权限控制
  • 多种渲染方式,jsx、函数式、组件实例、组件名

参数

参数说明类型可选值默认值
on-refresh刷新表格的钩子function(params, { next, done, render })
on-delete删除时的钩子function(selection, { next })
border是否带有边框booleanfalse

on-refresh 示例

<cl-crud :on-refresh="onRefresh"></cl-crud>
export default {
	methods: {
		async onRefresh(params, { next, done, render }) {
			// params 是每次请求的参数
			// next(params) 是继续往下执行 page 的请求
			// done() 完成请求,关闭loading
			// render(list, pagination) 渲染列表及分页信息

			let { list, pagination } = await next({
				...params,
				...额外的参数
			});

			list.map((e) => {
				e.name += "先生";
			});

			render(list);

			// 也可以不使用 next,用其他 service 代替,但是 render 就要设置分页信息:
			render(list, {
				page: "第几页",
				size: "每页数量",
				total: "总数"
			});
		}
	}
};

on-delete 示例

<cl-crud :on-delete="onDelete"></cl-crud>
export default {
	methods: {
		onDelete(selection, {next}) {
			// selection 行选择列表,默认
			// next(params) 是继续往下执行 delete 的请求

			// 默认根据表id来删除,你也可以修改成其他
			next(selection.map(e => e.id))
		}
	}
};

方法

方法名说明参数
getPermission获取 add, update, delele 的权限key
getParams获取 请求参数
rowAdd以新增方式打开表单
rowAppend以新增方式打开表单,并追加一些数据data
rowEdit以编辑方法打开表单data
rowClose关闭表单
rowDelete删除请求selection
openAdvSearch打开高级搜索
closeAdvSearch关闭高级搜索
refresh刷新请求params

事件

事件名说明回调参数
load组件加载完事件{ app, ctx }
<template>
	<cl-crud @load="onLoad"></cl-crud>
</template>

<script>
	export default {
		methods: {
			onLoad({ ctx, app }) {
				// 配置方法
				ctx
					// 配置请求,返回必须为 Promise。可直接继承 BaseService,它包含了基本的6个接口
					.service({
						// 分页列表
						page({ page, size, ... }) {
							return Promise.resolve({
								// 数据列表
								list: [],
								// 分页信息
								pagination: {
									total: 8,
									size: 20,
									page: 1
								}
							})
						},
						// 全部列表
						list() {
							return Promise.resolve([ /* 数据列表 */ ])
						},
						// 新增
						add(data) {
							return Promise.resolve()
						},
						// 更新,包含 id
						update(data) {
							return Promise.resolve()
						},
						// 详情,传行 id
						info({ id }) {
							return Promise.resolve({ /* 用户信息 */ })
						},
						// 删除,ids = [1, 2, 3]
						delete({ ids }) {
							return Promise.resolve()
						},
					})
					// 设置按钮权限,新增,编辑,删除。框架默认判断了。当然你也可以自定义
					.permission({
						add: true,
						update: true,
						delete: true
					})
					// 设置参数,例如 dict 字典
					.set('dict', {
						// 字典
						dict: {
							// 请求
							api: {
								list: 'list',   		// 全部数据
								add: 'add', 			// 新增
								update: 'update',   	// 修改
								delete: 'delete',   	// 删除
								info: 'info',   		// 详情
								page: 'page',   		// 分页
							},
							// 分页参数
							pagination: {
								page: 'page',   		// 页数
								size: 'size',   		// 每页显示的条目
							},
							// 搜索
							search: {
								keyWord: 'keyWord', 	// 模糊查询的关键字
								query: 'catecory', 		// 类目
							},
							// 排序
							sort: {
								order: 'sort',  		// 排序方式
								prop: 'order',  		// 排序关键字
							},
							// 标签
							label: {
								add: "新增",
								delete: "删除",
								multiDelete: "删除",
								update: "编辑",
								refresh: "刷新",
								advSearch: "高级搜索",
								saveButtonText: "保存",
								closeButtonText: "关闭"
							}
						},
					})
					// 完成配置,开始渲染
					.done()

				// 加载完组件是否发起 page 请求
				app.refresh({
					// 可以填入请求默认值
				})
			}
		}
	}
</script>

ctx

方法名说明参数
service设置请求服务{ page?, list?, update?, info?, add?, delete? }
permission设置权限,默认根据 permmenu 配置{ add, update, delete }
set设置其他参数{ dict, }
on监听事件{ name, callback }
once监听事件(只监听一次){ name, callback }
done完成配置,开始渲染

app

方法名说明参数
refresh刷新表格,默认调用 page 接口params
0.11.2

2 years ago

0.11.3

2 years ago

0.11.1

2 years ago

0.9.7

3 years ago

0.10.1

3 years ago

0.10.2

3 years ago

0.10.3

3 years ago

0.10.4

2 years ago

0.10.5

2 years ago

0.10.6

2 years ago

0.10.7

2 years ago

0.9.6

3 years ago

0.9.5

3 years ago

0.9.4

3 years ago

0.9.3

3 years ago

0.9.2

3 years ago

0.9.1

3 years ago

0.9.0

3 years ago

0.8.4

3 years ago

0.8.1

3 years ago

0.8.3

3 years ago

0.8.2

3 years ago

0.7.2

3 years ago

0.7.1

3 years ago

0.7.0

3 years ago

0.6.0

3 years ago

0.5.4

3 years ago

0.5.3

3 years ago

0.5.0

3 years ago

0.5.2

3 years ago

0.5.1

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.14

3 years ago

0.3.13

3 years ago

0.3.12

3 years ago

0.3.9

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.0

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.8

3 years ago

0.2.2

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago