配置数据表格 avue


addBtn: false,//新增按钮
delBtn: false,//删除按钮,批量删除按钮是页面自定义的注释即可
editBtn: false,//编辑按钮
refreshBtn: false,//刷新按钮
columnBtn:false, //列按钮
selection: false,//多选框按钮
align:'center', //列字段中间
searchShowBtn: false,//搜索按钮
menu:false, //操作栏隐藏
border: true,  // 边框
indexLabel:'序号',
index: true,控制序号这个显示和隐藏
searchMenuSpan: 6,  //控制搜索菜单的间距
searchLabelWidth:90  //搜索项标题宽度

1.相关列属性


disabled:true //列属性不能编辑


//必填,弹框中出现红星*
rules: [{
  required: true,
  message: "请填写文档名称",
  trigger: "blur"
}]


添加,编辑, 查看的时候是否显示
addDisplay: false,
editDisplay: false,
viewDisplay: false,

type: "number",
min:1,  //最小值
max:100,  //最大值

labelWidth:110  //标题宽度
order:10 //位置排序,数字越大位置越靠前

avue-crud  里面去掉下面那行隐藏掉分页器
:page.sync="page"

相关链接:最详细的avue属性及使用详细介绍_小四是个处女座的博客-CSDN博客

2.下拉框多选(用这个高级一点)


{
  label: "空气质量",
  prop: "aqiCategList",
  type: "tree",
  dicUrl: "/api/blade-system/dict/dictionary?code=aqi_categ",
  dataType: "string",
  props: {
    label: "dictValue",
    value: "dictKey"
  },
  multiple: true,
  search: true,
  searchSpan:7,
},

multiple: true,  //单选变多选
tags: true, //多选折叠
searchOrder:10   //值越大越往前
search:true,  //搜索出现
hide: true,  //下面列表隐藏
width:100   //设置每个列的宽度   不是 span 属性

vlaue 和 label全部用中文字符 下拉框想要传到后台是中文,可以这么配置

3.表格菜单里面自定义按钮


<template slot-scope="{row,index}" slot="menu">
  <el-button type="text"
             size="small"
             @click="viewHistory(row)">历史
  </el-button>
  <el-button type="text"
             size="small"
             @click="examine(row)">审核
  </el-button>
</template>

4.时间筛选区间(一般字段搜索加个search:'true'即可)


{
  label: "提交日期",
  prop: "createTimeRange",
  type: "date",
  format: "yyyy-MM-dd",
  valueFormat: "yyyy-MM-dd",
  searchRange:true,
  hide: true,
  addDisplay: false,
  editDisplay: false,
  viewDisplay: false,
  search: true,
  searchSpan:6,
},

//带时分秒

{
  label: "监测时间",
  prop: "dataTmRange",
  type: "datetimerange",
  format:'yyyy-MM-dd HH:mm:ss',
  valueFormat:'yyyy-MM-dd HH:mm:ss',
  searchRange: true,
  hide: true,
  addDisplay: false,
  editDisplay: false,
  viewDisplay: false,
  search: true,
  searchSpan: 6,
  searchOrder: 8
},

span:24,//栅格占据的列数

5.Form按钮自定义


原来的隐藏
submitBtn: false,
emptyBtn: false,

新的使用插槽
<template slot="menuForm">
  <el-button type="primary"  @click="agree()">同意</el-button>
  <el-button   @click="reject()">驳回</el-button>
</template>

6.表格和标题之间的间距!!!


<style scoped>
  ::v-deep .avue-crud__menu{
    min-height: 0px
  }
</style>

<style scoped>
  /deep/ .avue-crud__menu{
    min-height: 0px;
    margin-bottom: 0px
  }
</style>

7.多行文本框


{
  label: "审核意见",
  prop: "opinion",
  type: "textarea",
  span: 24,
  showWordLimit:true,
  maxlength:20
}

8.vue页面自定义下拉框


 <el-dropdown @command="changeValue1" style="margin-left: 10px;padding-top: 10px;">
<span class="el-dropdown-link">
  {{value1}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
          <el-dropdown-menu slot="dropdown">
            <el-dropdown-item v-for="(item) in options" :key="item.value" :command="item.label"
                              @click.native="click(item)"><span> {{ item.label }}</span>
            </el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>



value1: '按照版本号',
valueWhich: '0',


click(item) {
  this.valueWhich = item.value;
},
changeValue1: function (text) {
  // console.log("先前" + this.value1)
  this.value1 = text;

  // console.log("之后" + this.value1)
},

9.搜索下拉框字典

dataType:"number"  //加了这个之后数据回显就对了

10.下拉框非字典


dicUrl: "/api/blade-user/uploadUserList",
props: {
  label: "dictValue",
  value: "dictKey"
},
filterable:true,



//下拉框数据自定义

      label: "颜色",
      prop: "modelColor",
      type: "select",
      dicData: [
        {
          label: "蓝牌",
          value: "蓝牌"
        },
        {
          label: "绿牌",
          value: "绿牌"
        }
      ],
      filterable:true,

/**
 * 上传人下拉选择器
 */
@GetMapping("/uploadUserList")
@ApiOperationSupport(order = 20)
@ApiOperation(value = "上传人下拉选择器", notes = "上传人下拉选择器")
public List<Map<String,Object>> uploadUserList() {
   List<User> users = userService.list(new QueryWrapper<User>().eq("status", 1).eq("is_deleted", 0));
   List<Map<String,Object>> maps = new ArrayList<>();
   users.forEach(item->{
      Map<String,Object> map = new HashMap<>();
      map.put("dictKey",item.getId());
      map.put("dictValue",item.getName());
      maps.add(map);
   });
   return maps;
}

11.列表出现变形

修改这个高度,原来是auto现在改成100%

  1. 下拉框是动态值,根据传值变化这么写

  1. 下拉框可以搜索和清空

12.图片上传

效果:

 {
      label: "图片上传",
      prop: "img",
      hide: true,
      labelWidth: 110,
      type: "upload",
      dataType: "string",
      accept: [".jpg", ".png"],
      limit: 1,
      loadText: "上传中,请稍等",
      // tip: `注:已上传0/1,注:单个图片最大支持10M,仅支持png/jpg格式`,
      propsHttp: {
        res: "data",
        url: "link",
      },
      listType: "picture-img",
      action: "/api/blade-resource/oss/endpoint/put-file-attach",
      span: 24,
      rules: [
        {
          required: true,
          trigger: "blur",
          message: "请上传图片",
        },
      ],
    },

13.数值型输入

效果

    {
      label: "座位数",
      prop: "seats",
      type: "number",
      min:0,//最小值
      max:100//最大值
    },

14.多行文本框设置

效果:

    {
      label: "描述",
      prop: "desc",
      type: 'textarea',
      overHidden:true,
      rows: 5
    },

15.avue表格配置(输入框带验证和单位)

效果:

 {
      label: "区域",
      prop: "regionId",
      type: "select",
      dicUrl: "/api/blade-fixedAssetsProjectNature/fixedAssetsProjectNature/parkList",
      props: {
        label: "projectName",
        value: "id"
      },
      rules: [{required: true, message: "请选择区域", trigger: "blur"}]
    },
    {
      label: "占比",
      prop: "growthRate",
      type: "input",
      rules: [{required: true, message: "请输入占比", trigger: "blur"}, {
        pattern: /^-?[0-9]+(\.[0-9]{1,2})?$/,
        message: "请输入正确的占比格式",
        trigger: "blur"
      }],
      append: '%'
    },
    {
      label: "月份",
      prop: "month",
      type: "month",
      subtype: "month",
      format: "MM",
      valueFormat: "MM",
      rules: [{required: true, message: "请选择月份", trigger: "change"}]
    },
    {
      label: "年份",
      prop: "year",
      type: "year",
      subtype: "year",
      format: "yyyy",
      valueFormat: "yyyy",
      rules: [{
        required: true,
        message: "请选择年份",
        trigger: "change"
      }]
    },
    {
      label: "金额",
      prop: "money",
      type: "input",
      rules: [{required: true, message: "请输入金额", trigger: "blur"}, {
        pattern: /^-?[0-9]+(\.[0-9]{1,2})?$/,
        message: "请输入正确的金额格式",
        trigger: "blur"
      }],
      append: '亿元'
    },

16.列表中头部有%,而弹框框中没有

      <template  slot="percentHeader">
        <div>增长率(%)</div>
      </template>


    {
      label: "增长率",
      prop: "percent",
      type: "input",
      rules: [{required: true, message: "请输入增长率", trigger: "blur"}, {
        pattern: /^-?[0-9]+(\.[0-9]{1,2})?$/,
        message: "请输入正确增长率",
        trigger: "blur"
      }],
      append: '%'
    },


加个Header

效果:

12.搜索项的初始值

   {
              label: "年份",
              prop: "year",
              type: "year",
              subtype: "year",
              format: "yyyy",
              searchValue: new Date(),
              search: true,
              valueFormat: "yyyy",
              rules: [{
                required: true,
                message: "请选择年份",
                trigger: "change"
              }]
            },
            {
              label: "月份",
              prop: "monthNew",
              type: "month",
              search: true,
              searchValue: new Date(),
              subtype: "month",
              format: "M",//MM
              valueFormat: "M",//MM
              rules: [{
                required: true,
                message: "请选择月份",
                trigger: "change"
              }],

            },
      const year = this.findObject(this.option.column, 'year');
      const month = this.findObject(this.option.column, 'monthNew');
      let date = new Date()
      let currentYear = date.getFullYear();
      year.searchValue = currentYear.toString();
      month.searchValue = (date.getMonth() + 1).toString();

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值