jydeng
jydeng
交叉表排序有个问题,因为code都一样,会激活多列。 onChangeSorts的参数nextSorts也只有code,无法区分到底是哪一列激活了排序。 目前卡在这里了,需要知道是具体哪一列触发了排序。
经过一番折腾解决了,大概说一下思路: 1、排序插件提供了 `SortHeaderCell`,可以传递 `ReactNode`,不过也意味着要完全自己做了; 2、自定义 `SortHeaderCell`,可以获取到具体哪一列触发了排序,例如: 福州/利润、厦门/利润,可以获取到具体是福州还是厦门; 3、获取到具体哪列之后,问题就剩下排序算法,可以查看一下 leftDrillTree,这个数据顺序决定了排序; 4、排序 `leftDrillTree`,生成新的`matrix`,完成排序。 总结一下,现有`SortItem`只有`code`,`order`,对于CrossTable按列值排序的场景不太适用,缺少了关键的`dataKey`,自己实现的话比较绕一些,要重复实现排序效果与事件。 ``` const pipeline = useTablePipeline() .input({ dataSource: dataSource, columns: columns }) .use( features.sort({ mode: 'single', highlightColumnWhenActive: false, keepDataSource:...
可以输出一下 aggregate 函数,理论上自定义也是可以的。 这个Q有计算排名、占比的需求,估计要扩展 `dvt-aggregation` 这个包。
``` onStart = () => { if (this.state.startTime && this.state.currentTime) { this.setState({ isStarted: true, }); } else { this.setState({ isStarted: true, startTime: new Date(), currentTime: new Date(), }); } this.intervalHandle...