AvueAvue
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
  • CRUD API
  • Object对象用法
  • 表格虚拟化
  • 分页
  • 搜索
  • 表头配置
  • 表格行配置项
  • 表格列配置项
  • 数据字典
  • 操作栏配置
  • 增删改查方法
  • 按钮文案和图标
  • 按钮自定义
  • 弹窗表单配置
  • 深层结构数据
  • 卡片模式
  • 统计合计
  • 导入导出
  • 表格树
  • 父子表
  • 行编辑
  • 权限控制
  • 动态行列合并
  • 空状态
  • 等待加载
  • 拖拽排序
  • 其它类型
  • 表格高级用法
  • 大表哥(宇宙最强表格)
  • CRUD模块封装
  • CRUD极简增删改查封装

权限控制

普通用法

效果预览可直接操作下方示例
正在加载示例…
<template>
  权限开关
  <el-switch :active-value="false"
             :inactive-value="true"
             v-model="text"
             active-color="#13ce66"
             inactive-color="#ff4949" />
  <br /><br />
  <avue-crud :option="option"
             :permission="permission"
             :data="data" />
</template>

<script setup>
import { ref, watch } from 'vue';
const text = ref(false);
const permission = ref({});
const option = ref({
  column: [
    { label: '姓名', prop: 'name' },
    { label: '年龄', prop: 'sex' }
  ]
});
const data = ref([
  { id: 1, name: '张三', sex: 12 },
  { id: 2, name: '李四', sex: 20 }
]);

watch(text, (newVal) => {
  if (newVal === true) {
    permission.value = {
      delBtn: false,
      addBtn: false,
      menu: false
    };
  } else {
    permission.value = {
      delBtn: true,
      addBtn: true,
      menu: true
    };
  }
});
</script>

函数用法

效果预览可直接操作下方示例
正在加载示例…
<template>
  <avue-crud :option="option"
             :permission="getPermission"
             :data="data" />
</template>

<script setup>
import { ref } from 'vue';

const option = ref({
  column: [
    { label: '姓名', prop: 'name' },
    { label: '年龄', prop: 'sex' }
  ]
});
const data = ref([
  { id: 1, name: '张三', sex: 12 },
  { id: 2, name: '李四', sex: 20 }
]);

const getPermission = (key, row, index) => {
  if (key === 'editBtn' && index === 0) {
    return false;
  } else if (key === 'delBtn' && index === 1) {
    return false;
  }
  return true;
};
</script>

自定义用法

提示

  • 自定义按钮
  • 按钮方法
效果预览可直接操作下方示例
正在加载示例…
<template>
  <avue-crud :option="option"
             ref="crud"
             :data="data">
    <template #menu="{ size, row, index }">
      <el-button text
                 type="primary"
                 icon="el-icon-edit"
                 :size="size"
                 :disabled="index === 0"
                 @click="handleEdit(row, index)">编辑</el-button>
      <el-button text
                 type="primary"
                 icon="el-icon-delete"
                 :size="size">删除</el-button>
    </template>
  </avue-crud>
</template>

<script setup>
import { ref } from 'vue';

const option = ref({
  editBtn: false,
  delBtn: false,
  column: [
    { label: '姓名', prop: 'name' },
    { label: '年龄', prop: 'sex' }
  ]
});
const data = ref([
  { id: 1, name: '张三', sex: 12 },
  { id: 2, name: '李四', sex: 20 }
]);

const crud = ref(null);


const handleEdit = (row, index) => {
  if (crud.value) {
    crud.value.rowEdit(row, index);
  }
};

</script>
最后更新:
贡献者: smallwei
Prev
行编辑
Next
动态行列合并