廖井涛
2025-12-02 fd2ec4214c6f8456b957c3545e7d67bcdbbb9985
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//前端筛选功能
 
//筛选手动触发
function changeFilterEvent (event, option, $panel)  {
    // 手动触发筛选
    $panel.changeOption(event, !!option.data, option)
}
 
// 筛选函数
const filterChanged = ({ option, row, column }) => {
    if (option.data) {
 
        if(column.field.indexOf('.')>-1){
            let  array = column.field.split('.')
            if (row[array[0]][array[1]]==null){
                return ''.indexOf(option.data) > -1
            }else {
                return row[array[0]][array[1]].toString().indexOf(option.data) > -1
            }
 
        }else {
            if (row[column.field]==null){
                return ''.indexOf(option.data) > -1
            }else {
                return row[column.field].toString().indexOf(option.data) > -1
            }
 
        }
    }
    return true
}
 
const filterChangeds = ({ option, row, column }) => {
    if (option.data) {
        // 将筛选关键词统一转为小写
        const searchStr = option.data.toLowerCase();
 
        if (column.field.indexOf('.') > -1) {
            let array = column.field.split('.');
            // 获取要比较的值并转为字符串后再转小写
            const value = row[array[0]]?.[array[1]];
            const valueStr = (value?.toString() || '').toLowerCase();
            return valueStr.indexOf(searchStr) > -1;
        } else {
            // 获取要比较的值并转为字符串后再转小写
            const value = row[column.field];
            const valueStr = (value?.toString() || '').toLowerCase();
            return valueStr.indexOf(searchStr) > -1;
        }
    }
    return true;
}
 
export {changeFilterEvent,filterChanged,filterChangeds}