S2 icon indicating copy to clipboard operation
S2 copied to clipboard

🐛透视表自定义列头后,行维度的外侧排序失效

Open Ahui4518 opened this issue 5 months ago • 5 comments

🏷 S2 Version / S2 版本

Package Version
@antv/s2 *
@antv/s2-react
@antv/s2-react-components

💻 Sheet Type / 表格类型

  • [x] PivotSheet
  • [ ] TableSheet
  • [ ] PivotChartSheet
  • [ ] GridAnalysisSheet
  • [ ] StrategySheet
  • [ ] EditableSheet

🖋 Describe the bug / 问题描述

当使用透视表的自定义列头的时候,行维度根据TOTAL_VALUE的排序失效

⌨️ Code Snapshots / 代码片段

{
fields: {
    "columns": [
        {
            "field": "所有量值[实际销售数量]",
            "title": "实际销售数量",
            "description": "实际销售数量",
            "express": {
                "measure": {
                    "property": "实际销售数量",
                    "expression": {
                        "string": {
                            "value": "所有量值"
                        }
                    }
                }
            }
        }
    ],
    "rows": [
        "商品大类",
        "品牌",
        "商品年份"
    ],
    "values": [
        "所有量值[实际销售数量]"
    ],
    "valueInCols": true
},
[
    {
        "sortFieldId": "商品大类",
        "sortByMeasure": "$$total$$",
        "sortMethod": "desc",
        "query": {
            "$$extra$$": "所有量值[实际销售数量]"
        }
    },
    {
        "sortFieldId": "品牌",
        "sortByMeasure": "$$total$$",
        "sortMethod": "desc",
        "query": {
            "$$extra$$": "所有量值[实际销售数量]"
        }
    },
    {
        "sortFieldId": "商品年份",
        "sortByMeasure": "$$total$$",
        "sortMethod": "desc",
        "query": {
            "$$extra$$": "所有量值[实际销售数量]"
        }
    }
]
}

这是字段配置和相关的排序设置

🔗 Reproduction link / 复现链接

No response

📋 Steps to Reproduce the Bug or Issue / 重现步骤

Image, 只要是透视表自定义列头,外加行维度超过一个就能复现

😊 Expected Behavior / 期望行为

Image 预期是像图片所示,当行有多个维度时,外侧维度根据设置按汇总数据排序

😅 Current Behavior / 当前行为

No response

💻 OS / 操作系统

  • [ ] macOS
  • [x] Windows
  • [ ] Linux
  • [ ] Others / 其他

🌏 Browser / 浏览器

  • [x] Chrome
  • [ ] Edge
  • [ ] Firefox
  • [ ] Safari (Limited support / 有限支持)
  • [ ] IE (Nonsupport / 不支持)
  • [ ] Others / 其他

Ahui4518 avatar Jul 28 '25 14:07 Ahui4518

你好 @Ahui4518:

🌟 我们需要你的支持!

AntV/S2 的成长离不开社区的力量,期待您用以下方式与我们同行:

1. 点亮星星标记 ✨

如果 S2 为您的项目创造价值,请为我们点亮 GitHub Star! 这个简单的动作将:

  • 提升项目在开源生态的可见度
  • 激励维护团队持续优化
  • 吸引更多开发者参与共建

⭐ 立即点亮 Star

2. 加入用户荣誉墙 🏆

我们正在建立「S2 用户案例」展示墙,欢迎留下公司或产品名,您的回复将成为维护者、社区用户和观望者的信心来源 💪🏻

📝 登记使用案例

提 Issue 须知

⚠️ 在提出问题前,请确保你已经仔细阅读👓/搜索🔍过 官方文档常见问题 以及 图表示例, 并且已经搜索查阅过相关 Issues 列表Discussions 列表. 当你确定自己的问题没有解决方案时,请提交 issue。 ⚠️

如果是使用问题,不知道怎么用,移步 Discussions 讨论区 并提供 有效信息 进行 提问

参与社区共建

这是一个开源项目, 我们也有繁忙的业务要做, 是用自己的业余时间在维护, 为爱发电, 精力有限, 所以有时候 issue 响应速度不是那么及时, 如果你遇到了问题, 或者对 IssuesDiscussions 列表的问题感兴趣, 可以直接认领并尝试修复 (贡献指南),帮助 S2 变得更好

github-actions[bot] avatar Jul 28 '25 14:07 github-actions[bot]

@Ahui4518 你好,请提供完整可运行的复现代码。

Alexzjt avatar Jul 29 '25 02:07 Alexzjt

@Alexzjt 你好,复现链接https://codesandbox.io/p/sandbox/pivotsort-3z3l3f?file=%2Fsrc%2Findex.mjs%3A35%2C17 2.0版本在codesandbox里面运行不起来,我直接把配置贴上面了,复制到官网案例的组内排序那边就能看。期待是像https://s2.antv.antgroup.com/manual/basic/sort/basic#3%E5%BA%A6%E9%87%8F%E5%80%BC%E5%AD%97%E6%AE%B5sortbymeasure 的示例2非内侧维度按汇总数据排序,另外试了下如果fileds的columns设置为空数组,排序是正常的

Ahui4518 avatar Jul 29 '25 04:07 Ahui4518

@Ahui4518

  1. codesandbox地址打不开。
  2. 看issue原文贴的图片,自定义列头也不需要吧,也没起到作用,图上只有一个数值字段。
  3. 你给的自定义列头的定义不符合预期,里面没有children和数值指标字段。正常是需要包含数值字段的,类似下面这种。
const customTree: CustomTreeNode[] = [
  {
    field: 'a-1',
    title: '自定义节点 a-1',
    description: 'a-1 描述',
    children: [
      {
        field: 'a-1-1',
        title: '自定义节点 a-1-1',
        description: 'a-1-1 描述',
        children: [
          {
            field: 'measure-1',
            title: '指标 1',
            description: '指标 1 描述',
            children: [],
          },
          {
            field: 'measure-2',
            title: '指标 2',
            description: '指标 2 描述',
            children: [],
          },
        ],
      },
      {
        field: 'a-1-2',
        title: '自定义节点 a-1-2',
        description: 'a-1-2 描述',
        children: [],
      },
    ],
  },
  {
    field: 'a-2',
    title: '自定义节点 a-2',
    description: 'a-2 描述',
    children: [],
  },
];

Alexzjt avatar Jul 30 '25 03:07 Alexzjt

@Alexzjt 可能是我没写清楚,columns如果是字符串数组排序是正常的,如果是对象数组的话行维度的外侧排序就会失效

Ahui4518 avatar Jul 30 '25 04:07 Ahui4518