'use client'; import { useState, useEffect, useImperativeHandle, forwardRef } from 'react'; import { AgGridReact } from 'ag-grid-react'; import { ColDef, ColGroupDef } from 'ag-grid-community'; import { api } from '@nice/client'; import 'ag-grid-community/styles/ag-grid.css'; import 'ag-grid-community/styles/ag-theme-alpine.css'; import { areaOptions } from '@web/src/app/main/staffinformation/area-options'; import type { CascaderProps } from 'antd/es/cascader'; import { SetFilterModule } from '@ag-grid-enterprise/set-filter'; // import { zhCN } from 'ag-grid-community/dist/ag-grid-community'; // 修改函数类型定义 function getAreaName(codes: string[], level?: number): string { const result: string[] = []; let currentLevel: CascaderProps['options'] = areaOptions; for (const code of codes) { const found = currentLevel?.find(opt => opt.value === code); if (!found) break; result.push(String(found.label)); currentLevel = found.children || []; if (level && result.length >= level) break; // 添加层级控制 } return level ? result[level - 1] || '' : result.join(' / ') || codes.join('/'); } // 自定义下拉过滤器组件 // interface ICustomFilterProps { // column: { // getColId: () => string; // }; // api: { // forEachNode: (callback: (node: any) => void) => void; // }; // filterChangedCallback?: () => void; // 设置为可选属性 // } // const CustomDropdownFilter = forwardRef((props: ICustomFilterProps, ref) => { // const [selectedValue, setSelectedValue] = useState(''); // const [uniqueValues, setUniqueValues] = useState([]); // useEffect(() => { // const colId = props.column.getColId(); // const values = new Set(); // props.api.forEachNode(node => { // const value = node.data[colId]; // if (value != null) { // values.add(String(value)); // } // }); // setUniqueValues(Array.from(values).sort()); // }, [props.api, props.column]); // useImperativeHandle(ref, () => ({ // isFilterActive: () => !!selectedValue, // doesFilterPass: (params: any) => { // const value = String(params.data[props.column.getColId()] || ''); // // 精确匹配选中的值 // return value === selectedValue; // }, // getModel: () => { // return selectedValue ? { value: selectedValue } : null; // }, // setModel: (model: any) => { // setSelectedValue(model?.value || ''); // } // })); // const handleChange = (value: string) => { // setSelectedValue(value); // // 立即触发过滤器更新 // if (props.filterChangedCallback) { // props.filterChangedCallback(); // } // }; // return ( //
//