赞
踩
废话不多说,直接冲冲冲
show-search
optionFilterProp=“label”
<a-select
allow-clear
v-model:value="value"
:options="option"
show-search
optionFilterProp="label"
placeholder="请选择"
/>
**
<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 = () => {};
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。