您好!经调研,确认该现象是个bug,在进一步调研修复方案,当下提供一个workaround如下代码所示:
- var designer = GC.Spread.Sheets.Designer.findControl('gc-designer-container');
- var spread = designer.getWorkbook();
- var sheet = spread.getActiveSheet();
- GC.Spread.Sheets.Filter.HideRowFilter.ListValueCompareFn = function (a, b, context) {
- let { colIndex } = context;
- let dataTypePriority = { date: 0, number: 1, string: 2, boolean: 3, blank: 4 };
- let aValue = a.value, bValue = b.value, aValueType = a.type, bValueType = b.type;
- if (aValueType !== bValueType) {
- if (dataTypePriority[aValueType] < dataTypePriority[bValueType]) {
- return -1;
- }
- return 1;
- }
- if (aValueType === 'date' && bValueType === 'date') {
- let aYear = aValue.getFullYear?aValue.getFullYear():aValue, bYear = bValue.getFullYear?bValue.getFullYear():bValue;
- if (aYear < bYear) {
- return colIndex === 1 ? -1 : 1;
- } else if (aYear > bYear) {
- return colIndex === 1 ? 1 : -1;
- }
- }
- if (aValueType === 'string' && bValueType === 'string') {
- aValue = aValue.toLowerCase();
- bValue = bValue.toLowerCase();
- }
- if (aValue > bValue) {
- return 1;
- }
- return aValue < bValue ? -1 : 0;
- }
复制代码
测试已验证上述代码有效,如下动图所示:
|