在 components 文件夹中,创建一个新的 .vue 文件,例如:AvueCrudTable.vue。
透传父组件传递的属性和事件 :
1、利用v-bind=“ a t t r s " 支持所有 a v u e 的使用方法并在其基础上进行封装 2 、使用 v − o n = " attrs"支持所有 avue 的使用方法并在其基础上进行封装 2、使用 v-on=" attrs"支持所有avue的使用方法并在其基础上进行封装2、使用v−on="listeners” 将父组件传递的所有事件监听器绑定到 avue-crud 组件
AvueCrudTable 组件的模板、逻辑和样式。
1、 AvueCrudTable.vue 中定义默认的操作栏按钮,同时允许用户覆盖这些默认按钮。使用 props 接收传递的 actionButtons,并遍历数组以生成操作栏按钮
<template>
<div>
<avue-crud
ref="crudTable"
v-bind="$attrs"
v-on="$listeners"
>
<template #rowActions="{ row, rowIndex }">
<el-button
v-for="button in actionButtons"
:key="button.label"
v-if="getPermission(button.permission)"
:type="button.type"
size="mini"
@click="$emit(button.action, row, rowIndex)"
>
{
{
button.label }}
</el-button>
</template>
</avue-crud>
</div>
</template>
<script>
export default {
name: "AvueCrudTable",
props: