vue3 ant-design-vue 踩坑

废话不多说,直接冲冲冲

1.select 搜索,只需要添加两行代码即可实现

在这里插入图片描述

show-search
optionFilterProp=“label”

<a-select
      allow-clear
      v-model:value="value"
      :options="option"
      show-search
      optionFilterProp="label"   
      placeholder="请选择"
  />

**

2.表格的一些操作

<1>合并单元格

在这里插入图片描述

//合并相同字段方法
const setRowSpan = (data: any[], field: string) => {
  let count = 0; // 开始的第一项
  let indexCount = 1; // 对比的另外一项
  while (indexCount < data.length) {
    const item = data[count];
    // 初始化赋值
    if (!item.rowSpan) {
      item.rowSpan = 1;
    }
    // 判断当前项 和 后一项 的这个字段是否一致 一致则 合并的行数 +1
    // 给对比的 后面的这一项的 这个单元格设置为 0
    if (item[field] === data[indexCount][field]) {
      item.rowSpan++;
      data[indexCount].rowSpan = 0;
    } else {
      // 那说明 不相同 重新来过
      count = indexCount;
    }
    // 对比完后 进入下一项
    indexCount++;
  }
};


//使用
setRowSpan('表格数据', '合并的字段');

//配置columns
const columns = [
  {
    title: 'name',
    align: 'center',
    dataIndex: 'name',
    customRender: ({ text, record, index }) => {
      const obj = {
        children: text,
        props: {} as any,
      };
      // record 是当前行的数据
      obj.props.rowSpan = record.rowSpan;
      return obj;
    },
  }
  ]

<2>修改单元格样式

我们需要用到customCell来修改指定列的样式

在这里插入图片描述

const columns = [
{
    title: '名称',
    align: 'center',
    dataIndex: 'name',
    slots: { customRender: 'runningCount' },
    customCell: (record, rowIndex) => {
    //判断逻辑,自行修改
      if (record.name=='test') {
         return { style: { background: 'rgb(245 161 161)' } };
      }
    },
  },
  ]

<3>单元格内添加点击事件

我们需要用到h函数和customRender

const columns = [
  {
    title: '名称',
    align: 'center',
    dataIndex: 'name',
    customRender: ({ text, record, index }) => {
      const obj = {
        children: h('Button', {
          type: 'text',
          innerText: text,
          class: 'selectData',
          onClick: () => {
          //自行修改
            tableData.value = test(text);
          },
        }),
        props: {} as any,
      };
      return obj;
    },
  },
  ]

//test方法
const test = () => {};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值