diff --git a/apps/web/package.json b/apps/web/package.json index 849b301..e78ffbc 100755 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -15,7 +15,7 @@ "@ag-grid-community/react": "~32.3.2", "@ag-grid-enterprise/clipboard": "~32.3.2", "@ag-grid-enterprise/column-tool-panel": "~32.3.2", - "@ag-grid-enterprise/core": "~32.3.2", + "@ag-grid-enterprise/core": "~32.3.3", "@ag-grid-enterprise/filter-tool-panel": "~32.3.2", "@ag-grid-enterprise/master-detail": "~32.3.2", "@ag-grid-enterprise/menu": "~32.3.2", @@ -43,9 +43,10 @@ "@trpc/server": "11.0.0-rc.456", "@types/xlsx": "^0.0.36", "@xyflow/react": "^12.3.6", - "ag-grid-community": "~32.3.2", + "ag-grid-community": "~32.0.0", "ag-grid-enterprise": "~32.3.2", "ag-grid-react": "~32.3.2", + "ag-grid.i18n.zh-CN.json": "link:ag-grid-community/dist/locale/ag-grid.i18n.zh-CN.json", "antd": "^5.23.0", "axios": "^1.7.2", "browser-image-compression": "^2.0.2", diff --git a/apps/web/src/app/main/staffpage/stafftable/page.tsx b/apps/web/src/app/main/staffpage/stafftable/page.tsx index 0481f8b..98fc853 100644 --- a/apps/web/src/app/main/staffpage/stafftable/page.tsx +++ b/apps/web/src/app/main/staffpage/stafftable/page.tsx @@ -1,21 +1,22 @@ '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 { useState } from 'react'; +import { AgGridReact } from '@ag-grid-community/react'; +import { ColDef, ColGroupDef } from '@ag-grid-community/core'; +import { SetFilterModule } from '@ag-grid-enterprise/set-filter'; 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'; +import { utils, writeFile } from 'xlsx'; +import { Modal, Input, Button } from 'antd'; +import { api } from '@nice/client'; // 修改函数类型定义 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; @@ -24,116 +25,125 @@ function getAreaName(codes: string[], level?: number): string { 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 ( -//
-// setFileName(e.target.value)} + /> + {isLoading ? (
加载中...
@@ -294,6 +353,7 @@ export default function StaffTable() { ) : ( setGridApi(params.api)} // 添加gridApi回调 rowData={staffs} columnDefs={columnDefs} defaultColDef={{ @@ -302,7 +362,6 @@ export default function StaffTable() { textCustomComparator: (_, value) => value !== '', } }} - // localeText={zhCN} // 注入中文语言包 enableCellTextSelection={true} pagination={true} paginationAutoPageSize={true} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11fe7a4..c7a3ead 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -240,7 +240,7 @@ importers: specifier: ~32.3.2 version: 32.3.3 '@ag-grid-enterprise/core': - specifier: ~32.3.2 + specifier: ~32.3.3 version: 32.3.3 '@ag-grid-enterprise/filter-tool-panel': specifier: ~32.3.2 @@ -324,14 +324,17 @@ importers: specifier: ^12.3.6 version: 12.3.6(@types/react@18.2.38)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) ag-grid-community: - specifier: ~32.3.2 - version: 32.3.3 + specifier: ~32.0.0 + version: 32.0.0 ag-grid-enterprise: specifier: ~32.3.2 version: 32.3.3 ag-grid-react: specifier: ~32.3.2 version: 32.3.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + ag-grid.i18n.zh-CN.json: + specifier: link:ag-grid-community/dist/locale/ag-grid.i18n.zh-CN.json + version: link:ag-grid-community/dist/locale/ag-grid.i18n.zh-CN.json antd: specifier: ^5.23.0 version: 5.23.0(date-fns@2.30.0)(luxon@3.5.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -3512,9 +3515,15 @@ packages: ag-charts-locale@10.3.3: resolution: {integrity: sha512-+ZAQYhkFHbdEwLYP1jZeF44X/8wwSH6SNiTykEIIk6EUuP6mm45X2YfQ0bvyekTkEJlLvFspvRQ+C6mspwLx4w==} + ag-charts-types@10.0.0: + resolution: {integrity: sha512-jjiwrzydERou4yp9WHiJeVK237B7BUP3/4j6tdycyHag266YVWa/BMNtTOThWJKGku+m+TC2qfaujLYixgcbrQ==} + ag-charts-types@10.3.3: resolution: {integrity: sha512-8rmyquaTkwfP4Lzei/W/cbkq9wwEl8+grIo3z97mtxrMIXh9sHJK1oJipd/u08MmBZrca5Jjtn5F1+UNPu/4fQ==} + ag-grid-community@32.0.0: + resolution: {integrity: sha512-H0I19/+SXTP/uMeG58nlm/Fj1rMKlX6mnbMW+MrfJ+e0/aguOtrOG+UGOn8f3CTmSwjOIQquCmu3gK8hBMqgtQ==} + ag-grid-community@32.3.3: resolution: {integrity: sha512-KhSJ3B6mwRFA4cLjNjOZkDndJBh8o83794ZHl4Q7xP9MJf43oCN9qoZ8pyBanohgpVfLcP0scYYCr9xIlzjdiA==} @@ -11245,8 +11254,14 @@ snapshots: ag-charts-locale@10.3.3: {} + ag-charts-types@10.0.0: {} + ag-charts-types@10.3.3: {} + ag-grid-community@32.0.0: + dependencies: + ag-charts-types: 10.0.0 + ag-grid-community@32.3.3: dependencies: ag-charts-types: 10.3.3