Avue属性及使用详细介绍

<template>
<!-- 基础组件 -->
  <basic-container>
    <!-- <el-button @click='exportHandle'>导出</el-button> -->
    <avue-crud
        设置表格属性
      :option="option"
        用来存取页面的值
      v-model="form"
      获取后台数据
      :data="data"
      :table-loading="loading"
      分页
      :page="page"
      权限控制  操作按钮动态显示
      :permission="permissionList"
      打开前回调
      :before-open="beforeOpen"
       关闭前回调
      :before-close="beforeClose"
       获取dom 结构
      ref="crud"
       数据编辑后出发
      @row-update="rowUpdate"
      新增数据确定后执行
      @row-save="rowSave"
      行删除
      @row-del="rowDel"
       点击搜索后触发该事件
      @search-change="searchChange"
       清空搜索回调方法
      @search-reset="searchReset"
      当选择项发生变化时会触发该事件
      @selection-change="selectionChange"
      @current-change="currentChange"
      点击每页多少条
      @size-change="sizeChange"
      点击刷新
      @refresh-change="onLoad(page)"
      初始化页面
      @on-load="onLoad"
    >
    自定义按钮
      <template slot-scope="scope" slot="menu">
        <el-button   @click="submitHandle(scope.row)">提交</el-button >
       </template>
      <template slot-scope="{ row }" slot="status">
      更改表格内容
        <el-tag v-if="row.status == 0">待审</el-tag>
        <el-tag v-else-if="row.status == 1" type="info">审批中</el-tag>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
export default {
  data() {
    return {
      form: {},
      type: "",
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      selectionList: [],
      option: {
      //列的对其方式
         align:'left',
         //表格宽度
         width: '100%',
         //表格高度差(主要用于减去其他部分让表格高度自适应)
         calcHeight: 'auto',
         //表格高度
         height: 'auto',
         //表格最大高度
        maxHeight: 'auto',
        // 弹框文字提示
        tip: false,
        // 边框
        border: true,
        // 显示序号
        index: true,
        // 序号标题
        indexLabel: "序号",
        //打印按钮
        printBtn: true	
       // 刷新按钮	
        refreshBtn: true	
        // 查看按钮
        viewBtn: true,
        // 行内编辑按钮
        editBtn: false,
        // 行内删除
        delBtn: false,
        //首次加载是否显示搜索
        searchShow: true, 
          editBtnText:'编辑文案',
          viewBtnText:'查看文案',
          printBtnText:'打印文案',
          excelBtnText:'导出文案',
          updateBtnText:'修改文案',
          saveBtnText:'保存文案',
          cancelBtnText:'取消文案',
        column: [
          {
            label: "请假人",
             //匹配后端字段
            prop: "userId",
           //输入框状态控制 默认为input
            type: "tree",
//type:input/input/select/radio/checkbox/textarea/cascader/date/time/datetime
/daterange/timerange/datetimerange/week/month/year/dates/password/switch/tree/number
maxRows:4,//最大行(当type为textarea,当number时最大值)
minRows:2,//最小行(当type为textarea,当number时最小值)
            // 搜索栏目自定义内容 同时控制页面显示隐藏
            search: true,
             //表单编辑时是否禁止输入
            editDisabled: true, 
            //表单新增时是否禁止输入
            addDisabled: true, 
            //隐藏显示当前项
            display: false,
           // 表单新增是可见
            addDisplay: false,
             // 表单查看是否可见
            viewDisplay: true,
            // 编辑按钮是否可见
            editDisplay: false,
             // 隐藏列
            hide: true,
            //选着多个 当type为tree生效
             multiple: true,
            // 传入静态字典
            dicData: [],
            // 字典参数   props 匹配后台字段
            props: {
              value: "sysId",
              label: "name",
            },
            //字典地址
             dicUrl: "/api/blade-system/dict/dictionary?code=exam_state",
             //时间格式
               format: "yyyy-MM-dd hh:mm:ss",
               valueFormat: "yyyy-MM-dd hh:mm:ss",
            //验证
            rules: [
              {
                required: true,
                message: "请选择请假人",
                trigger: "blur",
              },
            ],
          },
      data: []
      };
  },
  mounted() {
    // 当字典数据需要前端转换时   获取请假人id 通过接口 添加字典数据
    personnel(1, 10000, {
      is_deleted: 0,
    }).then((res) => {
      this.option.column.forEach((item) => {
        if (item.prop == "userId") {
          item.dicData = res.data.data.records;
        }
      });
    });
  },
  methods: {
  onLoad(page, params = {}) {
      this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
      //渲染数据
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
       
      });
    },
  },
};
</script>

<style>
</style>
转载
原文链接:https://blog.csdn.net/xiaosi1413/article/details/117462451
option: {
          labelWidth: 20, //标签宽度
          gutter: 132, //间距
          card: true, //是否列表公用
          tabs: true, //开启选项卡
          tabsActive: 3, //选项卡个数
          emptyBtn: true, //是否显示清空按钮,默认true
          submitBtn: true, //是否显示提交按钮,默认true
          mockBtn: true, //是否开启模拟按钮,默认false
          submitText: '完成', //提交按钮文本
          addBtn: true, //添加按钮
          menuWidth:100,//按钮宽度
          menuAlign:'center',//按钮位置
          menuHeaderAlign:'center',//头位置
          viewBtn:true,//查看
          editBtn:false,//编辑
          delBtn:false,//删除
            copyBtn:true,//复制
          group: [{
            icon: 'el-icon-info',
            label: '分组1',
            collapse: false,
            prop: 'group1',
            column: [{
              label: '内容1',
              prop: 'text1',
            }]
          }, {
            icon: 'el-icon-info',
            label: '分组2',
            arrow: false,
            prop: 'group2',
            column: [{
              label: '选项卡2',
              prop: 'text2',
            }, {
              label: '选项卡3',
              prop: 'text3',
            }]
          }], //分组显示
          column: [{
            label: "用户名", //标签名称
            prop: "username", //值
            tip: '这是信息提示', //内容提示
            tipPlacement: 'left', //内容提示语位置
            labelTip: '我是一个标题提示语', //标签提示语
            labelTipPlacement: 'right', //标签提示语位置
            maxlength: 3, //最长
            suffixIcon: 'el-icon-tickets', //后图标
            prefixIcon: 'el-icon-tickets', //前图标
            format: 'yyyy-MM-dd', //时间显示格式化
            valueFormat: 'yyyy-MM-dd', //返回值时间格式化
            startPlaceholder: '时间日期开始范围自定义',
            endPlaceholder: '时间日期结束范围自定义',
            minlength: 2, //最短
            row: true, //独占一行
            prepend: 'http://', //后缀
            append: 'com', //前置,
            minRows: 8, //文本框最小行
            maxRows: 10, //文本框最大行
            showWordLimit: true, //显示剩余多少长度
            step: 2, //增加步数
            stepStrictly: true, //严格步数
            precision: 2, //小数点精度
            controlsPosition: '', //步数增加按钮位置
            labelPosition: 'top', //标签位置
            dataType: 'number', //数据类型
            span: 24, //宽度

            className: 'formClassName', //样式
            value: '默认值', //默认值
            type: "cascader", //input类型select下拉、cascade级联、tree树
            multiple;true, //是否可以选择多个,和select一起使用
            drag: true, //是否可以拖拽select中的结果类容
            all: true, //多选框时,是否全选
            border: true, //空心多选框
            min: 1, //限制选择数量
            max: 2,
            button: true, //按钮类型多选框
            dicData: {
              label: '有权限',
              value: 1
            },
            {
              label: '无权限',
              value: 0
            },
            {
              label: '禁止项',
              disabled: true, //禁止字典选择
              value: -1
            }, //数据字典
            dicUrl: `${baseUrl}/getProvince`, //网络字典URL
            dicFormatter: (data) => {
              data.forEach(ele => {
                ele.name = ele.name + '字典格式化'
              })
              data.unshift({
                name: '追加字典',
                code: -1
              })
              return data
            }, //字典格式化
            dicData: [{
                label: '热门城市',
                groups: [{
                  value: 'Shanghai',
                  label: '上海',
                  desc: '描述'
                }, {
                  value: 'Beijing',
                  label: '北京'
                }]
              }, //字典分组     props: {
              label: 'name',
              value: 'code'
            }, //指明字典数据对应关系
            validator: validatePass, //开启自定义校验,值为一个函数
            bind: 'deep.deep.deep.value', //数据双向绑定
            order: 1, //字段排序,降序排列
            component: 'elDivider', //组件名字
            event: {
              click: () => {
                this.$message.success('点击方法')
              },
            }, //点击方法
            params: {
              html: '<h2 style="color:red">自定义html标签,点我触发方法</h2>',
              contentPosition: "left",
            }, //组件参数
            change: ({
              value,
              column
            }) => {
              this.$message.success('change事件查看控制台')
              console.log('值改变', value, column)
            },
            click,
            focus,
            blur, //事件函数
            errorslot: true, //错误自定义卡槽
            labelslot: true, //标签自定义卡槽
            formslot: true, //内容自定义卡槽
            rules: [{ //校验
              required: true, //是否必须
              type: 'array', //数据类型
              message: "请输入用户名", //提示
              trigger: "blur", //出发事件
            }]
          }]
        }
      }
————————————————
转载
原文链接:https://blog.csdn.net/qq_44872773/article/details/124286707

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值