avue-crud常用配置说明
avue-crud 是一个基于 Vue.js 的开源组件库,用于快速构建表单、表格和数据管理的前端界面。它简化了常见的 CRUD(创建、读取、更新、删除)操作的开发过程,特别适用于管理系统或后台管理平台。
它是一个基于Element-plus低代码前端框架,它使用JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率。
主要特点
- 快速生成表单和表格:通过简单的配置文件,你可以快速生成带有验证规则的表单,以及带分页、搜索、筛选等功能的表格。
- 内置丰富组件:avue-crud 内置了大量的表单组件和表格功能,如输入框、下拉框、日期选择器、开关、文件上传、图片上传等,支持多种类型的数据展示。
- 自定义插槽:支持自定义插槽,开发者可以根据业务需求自定义表单项或表格列的展示方式,灵活性高。
- 响应式布局:支持响应式设计,能够在不同设备上正常显示,如桌面端和移动端。
- 集成操作按钮:集成了常见的操作按钮(如新增、删除、编辑、查看),简化了常用的增删改查操作。
- 与第三方框架集成:可以与 Element-UI 等 UI 框架无缝结合,利用这些框架的组件进一步扩展功能。
官方帮助文档:https://avuejs.com/crud/crud-doc.html
本文主要针对一些常用的配置进行说明,因为刚开始接触的时候对框架可能不是很熟悉,官网不好查找。更多详细的用户可以去官网查看。
一、avue-crud 配置项参数
<avue-crud :option="option" // 绑定option 配置对象,用于定义 avue-crud 表格及表单的各类行为和外观 :table-loading="loading" // 表格等待框的控制,加载的时候转圈圈,设置true/false :data="data" // 绑定表格数据源,即表格显示的数据 v-model:page="page" // 双向绑定分页数据,page分页变量,具体参考page参数 :permission="permissionList" // 控制操作权限,表格多个按钮权限控制,采用函数方式可以精确到行控制 :before-open="beforeOpen" // 在打开表单之前执行回调,会暂停Dialog的打开,done用于打开Dialog,type为当前窗口的类型3.5.2新增loading方法function(done,type,loading)=>{} :before-close="beforeClose" // 在打开表单之前执行回调,会暂停Dialog的关闭,done用于关闭Dialog,type为当前窗口的类型function(done,type)=>{} v-model="form" // 双向绑定表单数据 ref="crud" // 通过 ref 获取 avue-crud 实例对象 在普通的DOM元素上使用,引用指向的就是DOM元素 @cell-click="handleCellClick" // 单元格单击触发事件 @row-click="handleRowClick" // 行单击触发事件 @row-update="rowUpdate" // 当用户点击“编辑”按钮并提交表单时,触发该事件 @row-save="rowSave" // 当用户点击“新增”按钮并提交表单时,触发该事件 @row-del="rowDel" // 当用户点击表格中的删除按钮时,触发该事件 @search-change="searchChange" // 当用户更改搜索条件时,点击搜索后触发该事件。 @search-reset="searchReset" // 当用户点击“清空”(重置)按钮时,触发该事件。 @selection-change="selectionChange" // 当用户选择或取消选择表格中的多选行时,触发该事件(操作复选框列) @current-change="currentChange" // 点击页码会调用current-change方法回调当前页数,返回当前第几页 @refresh-change="refreshChange" // 点击右上角刷新按钮触发事件 @on-load="onLoad" // 表格数据加载完成时触发 @on-load="onLoad" // 表格数据加载完成时触发 >
二、page 配置项参数
page: { currentPage: 1, // 当前页数 pageSize: 20, // 每页显示条目个数 total: 0, // 总条目数 pagerCount: 7, // 页码按钮的数量,当总页数超过该值时会折叠 background: true, // 是否为分页按钮添加背景色 layout: 'prev, pager, next, jumper, ->, total' // 组件布局,子组件名用逗号分隔 pageSizes: [10, 20, 30, 40, 50, 100] // 每页显示个数选择器的选项设置 }
三、option 配置项参数
option: { height: 'auto', // 表格高度 calcHeight: 30, // 表格高度差 column: [], // 表单列配置参考Column配置 tip: false, // 表格第一行提示是否显示:当前表格已选择 0 项 清空 border: true, // 是否显示边框 index: true, // 是否显示序号 indexLabel:'序号', // 并将索引字段设置为“序号”,默认是“#” selection: true, // 表格勾选列(即批量删除) searchShow: true, // 首次加载是否显示搜素拦 searchMenuSpan: 24, // 搜索按钮长度(搜索和清空按钮长度,两按钮居中) searchSpan: 6, // 搜索框长度最大长度24(每项搜索内容长度,包括字段名+文本框) searchBtn: false, // 搜索按钮是否显示 searchBtnText: '搜索', //搜索按钮显示文字,默认是“搜索” emptyBtn: false, // 清空(重置)按钮是否显示 emptyBtnText: '重置', // 清空按钮显示文字,默认是“清空” addBtn:true, //表格上方左侧新增按钮是否显示 addBtnText: '新增', // 新增按钮显示文字,默认是新增 menu: true, // 是否有操作栏 menuTitle: '操作', // 操作栏标题 viewBtn: 'true', // 操作栏查看按钮 viewBtnText: '查看', // 表格查看按钮文字 editBtn: true, // 操作栏修改按钮 editBtnText: '编辑', // 表格修改按钮文字 delBtn: true, // 操作栏表格删除按钮 delBtnText: '删除', // 表格删除按钮文字 addTitle: '新增', // 单击表格上方新增按钮,表格弹窗新增页面的标题 editTitle: '编辑', // 单击操作栏修改按钮,表格弹窗修改页面的标题 viewTitle: '查看', // 单击操作栏查看按钮,表格弹窗查看页面的标题 updateBtn: true, // 单击操作栏修改按钮,表格弹窗页面的修改按钮是否显示 updateBtnText: '修改', // 表格弹窗修改按钮文字 saveBtn: true, // 单击表格上方新增按钮,表格弹窗页面的保存按钮是否显示 saveBtnText: '保存', // 表格弹窗保存按钮文字 cancelBtn: true, // 单击新增或者修改按钮,表格弹窗取消按钮是否显示 cancelBtnText: '取消', // // 表格弹窗取消按钮文字 refreshBtn: true, //表格顶部右侧刷新数据按钮 columnBtn: true, //表格顶部右侧表格列操作按钮 searchShowBtn: true, //表格顶部右侧表格搜索显隐按钮 gridBtn: true, // 表格顶部右侧卡片模式切换按钮 excelBtn: false, //表格顶部右侧表格导出按钮 printBtn: false, // 表格顶部右侧表格打印按钮 filterBtn: false, //表格顶部右侧表格自定义过滤按钮 dialogWidth: 60%, // 表格弹窗宽度(新增、修改、查看) }
四、option.column配置项参数
表格列配置或者搜索栏中列(非插槽)的配置
column:[{ label: '字段显示名称', // 该列表头显示的标题 labelTip: "字段说明", // 字段说明,放入搜索栏后会在字段前鼠标移到该字段时显示tip说明 prop: "name", // 列属性名称key,用于唯一标识 width: "150", //列宽 sortable: false, // 对应列是否可以排序,如果设置为 'custom',则代表需要自定义排序,需要监听 Table 的 sort-change 事件 fixed:false, //列是否固定在左侧或者右侧,true 表示固定在左侧(true/left/right) hide:true, // 是否隐藏列,注意和display(弹出框是否显示列)的区别 overHidden: true, // 超出用省略号显示 type: "radio", // 字段类型,如单选、复选等 dataType: "number", // 字段数据类型 value: 1, // 对应value值 dicData: [{ // 字典 label: '名称1', value: 1 },{ label: '名称2', value: 2 }], slot: true, // 自定义插槽,在html里可以通过编写template #字段名称来自定义插槽 search: true, // 是否为搜索项,将该字段添加到搜索栏 searchValue: '初始值', // 搜索项初始化值 searchPlaceholder: '请输入 XXX', // 搜索项辅助文字 searchOrder: 1, // 搜索项位置排序,序号越大越靠前 dialogWidth: 650, // 弹出表单(新增、修改、查看)的宽度 labelWidth: 100, // 弹出表单(新增、修改、查看)字段名称label的宽度 display: true, // 弹出表单(新增、修改、查看)是否显示该列,注意区分和hide的区别 addDisplay: false, // 表单新增时项是否显示 editDisplay: false, // 表单编辑时项是否显示 viewDisplay: false, // 表单查看时项是否显示 disabled: true, // 弹出表单(新增、修改、查看)是否禁止 addDisabled: false, //表单新增时项是否禁止 editDisabled: false, // 表单编辑时项是否禁止 viewDisabled: false, // 表单查看时项是否禁止 formatter: (row, value) => { // 用来格式化列内容 return dayjs(value).format('YYYY-MM-DD'); // // 格式化日期示例: YYYY-MM-DD }, rules: [{ // 表单校验规则 required: true, // 是否必填项 message: "请输入推送名称", // 当验证不通过时显示的提示信息 trigger: "blur" // blur: 在字段失去焦点时触发验证;change: 在字段内容发生变化时触发验证 }] }]