{ align: "center", dataIndex: "archiveStatus", title: "归档状态", key: "archiveStatus", valueEnum: { 0: "合同审批中", 1: "盖章", 2: "快递", 3: "归档", }, width: 60, }根据所在列的record的某一属性值显示不同的valueEnum
时间: 2023-07-19 15:03:36 浏览: 59
您可以使用valueEnum的函数形式来实现这个需求。具体实现方式如下:
```{ align: "center", dataIndex: "archiveStatus", title: "归档状态", key: "archiveStatus", valueEnum: (text, record, index) => { switch(record.archiveStatus) { case 0: return "合同审批中"; case 1: return "盖章"; case 2: return "快递"; case 3: return "归档"; default: return ""; } }, width: 60, }```
这里的valueEnum是一个函数,它会接收三个参数:text、record和index。其中,text表示当前单元格的文本值,而record则表示当前行的数据对象,index是当前行的索引值。
在函数体内,我们可以使用switch语句来根据record的archiveStatus属性值返回不同的文本值,从而实现根据所在列的record的某一属性值显示不同的valueEnum的需求。
相关问题
{ align: "center", dataIndex: "archiveStatus", title: "归档状态", key: "archiveStatus", valueEnum: { 0: "合同审批中", 1: "盖章", 2: "快递", 3: "归档", }, width: 60, }根据record的某一属性值显示不同的valueEnum
可以使用valueEnum的回调函数来根据record的属性值动态生成不同的选项:
```javascript
{
align: "center",
dataIndex: "archiveStatus",
title: "归档状态",
key: "archiveStatus",
valueEnum: (record) => {
if (record.archiveStatus === 0) {
return { 0: "合同审批中" };
} else if (record.archiveStatus === 1) {
return { 1: "盖章" };
} else if (record.archiveStatus === 2) {
return { 2: "快递" };
} else if (record.archiveStatus === 3) {
return { 3: "归档" };
}
return {};
},
width: 60,
}
```
在这个例子中,如果record的archiveStatus属性值为0,那么valueEnum就只显示一个选项"合同审批中";如果archiveStatus属性值为1,那么valueEnum就只显示一个选项"盖章";以此类推。如果archiveStatus属性值不在0、1、2、3之间,那么valueEnum就返回一个空对象,不显示任何选项。
const column = [ { title: '序号', dataIndex: 'idx', width: 76, key: "idx", align: 'center', render: (text, record, index) => (index + 1) }, { title: '联系人', dataIndex: 'contactsName', key: 'contactsName', width: 76, align: 'center', render: (text, record, index) => (index + 1) }, { title: '联系电话', dataIndex: 'contactsPhone', key: 'contactsPhone', width: 182, align: 'center', }, { title: '职位类型', dataIndex: 'contactsPositionType', key: 'contactsPositionType', width: 200, align: 'center', } ]动态过滤
好的,你需要动态过滤一个数组。可以通过传入一个过滤条件,来筛选出符合条件的数组元素。以下是一个基于你提供的数据的示例代码:
```javascript
const data = [
{
idx: 1,
contactsName: '小明',
contactsPhone: '1234567890',
contactsPositionType: '开发工程师'
},
{
idx: 2,
contactsName: '小红',
contactsPhone: '0987654321',
contactsPositionType: '产品经理'
},
{
idx: 3,
contactsName: '小刚',
contactsPhone: '1357924680',
contactsPositionType: '设计师'
}
];
function filterData(data, filterConditions) {
return data.filter(item => {
for (let key in filterConditions) {
if (item[key].indexOf(filterConditions[key]) === -1) {
return false;
}
}
return true;
});
}
const filterConditions = {
contactsName: '小',
contactsPositionType: '工程师'
};
const filteredData = filterData(data, filterConditions);
console.log(filteredData);
```
上面的代码中,`filterData` 函数接受两个参数:原始数据数组和过滤条件对象。函数内部通过使用 `filter` 方法和 `for...in` 循环,对数组进行过滤。最后返回符合条件的数组元素组成的新数组。你可以根据自己的需求修改过滤条件对象 `filterConditions`,来达到动态过滤的效果。
阅读全文