Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🤔关于隐藏列头功能问题 #1603

Closed
dengyushuai opened this issue Jul 23, 2022 · 9 comments
Closed

🤔关于隐藏列头功能问题 #1603

dengyushuai opened this issue Jul 23, 2022 · 9 comments
Labels
❔question 疑问/使用问题

Comments

@dengyushuai
Copy link

🖋 Description

设置一个button按钮,用来控制显示隐藏列头,此时点击按钮可以控制列头的显示隐藏
1658545480629

问题:
当列头存在时,先使用鼠标拖拽一下列头(使用鼠标拖拽改变一下列头高度),之后再去点击显示隐藏列头按钮时(也就是设置列头height:0),设置高度无效。
1658545595765

codesandbox: https://el8wue.csb.app/

@dengyushuai dengyushuai added the ❔question 疑问/使用问题 label Jul 23, 2022
@lijinke666
Copy link
Member

表格的宽高有三种, 优先级依次为: 用户拖拽后的 > 用户设置的 > 表格自动计算的

第二次拖拽后, 产生了一条拖拽信息, 所以在表格重新渲染的时候, 会优先读取它

// a. 你配置的 

{
  "colCfg": {
    "height": 0
  }
}

// b. 拖拽后生成的
{
  "colCfg": {
    "heightByField": {
      "province": 62
    }
  }
}

所以:

  1. 关闭列头拖拽
  2. 或者替换你的配置写法 a => b
{
  "colCfg": {
    "heightByField": {
      // 明细表列头高度都一样, 任取一个 field
      [任意列头 field]: 0
    }
  }
}

https://s2.antv.vision/zh/docs/manual/advanced/custom/cell-size#%E8%B0%83%E6%95%B4%E8%A1%8C%E5%A4%B4%E5%8D%95%E5%85%83%E6%A0%BC%E5%AE%BD%E9%AB%98

@dengyushuai
Copy link
Author

dengyushuai commented Jul 26, 2022

表格的宽高有三种, 优先级依次为: 用户拖拽后的 > 用户设置的 > 表格自动计算的

第二次拖拽后, 产生了一条拖拽信息, 所以在表格重新渲染的时候, 会优先读取它

// a. 你配置的 

{
  "colCfg": {
    "height": 0
  }
}

// b. 拖拽后生成的
{
  "colCfg": {
    "heightByField": {
      "province": 62
    }
  }
}

所以:

  1. 关闭列头拖拽
  2. 或者替换你的配置写法 a => b
{
  "colCfg": {
    "heightByField": {
      // 明细表列头高度都一样, 任取一个 field
      [任意列头 field]: 0
    }
  }
}

https://s2.antv.vision/zh/docs/manual/advanced/custom/cell-size#%E8%B0%83%E6%95%B4%E8%A1%8C%E5%A4%B4%E5%8D%95%E5%85%83%E6%A0%BC%E5%AE%BD%E9%AB%98

按照您的配置写法,出现两个问题。写法如下图
1658804147481
第一个问题:头部拖拽功能失效了。
第二个问题:当我把头部设置为0时,头部还是显示着。
codesandbox: https://ndzp6j.csb.app/

@lijinke666
Copy link
Member

第二个问题:当我把头部设置为0时,头部还是显示着。

看了下, 这是一个 bug, 内部会忽略为 0 的情况

return userDraggedHeight || colCfg.height;

第一个问题:头部拖拽功能失效了。

既然你都要隐藏列头, 拖拽列头的意义是? 为什么不直接把拖拽功能禁用? 或者我们表格内部 在高度为0 时应该做这个处理

@dengyushuai
Copy link
Author

dengyushuai commented Jul 26, 2022

第二个问题:当我把头部设置为0时,头部还是显示着。

看了下, 这是一个 bug, 内部会忽略为 0 的情况

好的,谢谢。

return userDraggedHeight || colCfg.height;

第一个问题:头部拖拽功能失效了。

既然你都要隐藏列头, 拖拽列头的意义是? 为什么不直接把拖拽功能禁用? 或者我们表格内部 在高度为0 时应该做这个处理

不是要隐藏列头,需求是通过按钮控制显示隐藏列头,显示时还要能拖拽。

@lijinke666
Copy link
Member

所谓的禁用拖拽, 就是隐藏拖拽热区, 隐藏列头隐藏热区, 显示列头再显示热区不就好了?
https://s2.antv.vision/zh/docs/manual/advanced/interaction/basic#%E8%A1%8C%E5%88%97%E5%AE%BD%E9%AB%98%E8%B0%83%E6%95%B4

@dengyushuai
Copy link
Author

dengyushuai commented Jul 26, 2022

所谓的禁用拖拽, 就是隐藏拖拽热区, 隐藏列头隐藏热区, 显示列头再显示热区不就好了? https://s2.antv.vision/zh/docs/manual/advanced/interaction/basic#%E8%A1%8C%E5%88%97%E5%AE%BD%E9%AB%98%E8%B0%83%E6%95%B4

您说的有道理,现在这个需求确实不太好。谢谢

@lijinke666
Copy link
Member

lijinke666 commented Jul 26, 2022

或者我们表格内部 在高度为0 时应该做这个处理

感谢你为我们提供了一种场景吧, 我觉得对于高度为0的场景, 表格内部就不应该允许拖拽列头

@dengyushuai
Copy link
Author

或者我们表格内部 在高度为0 时应该做这个处理

感谢你为我们提供了一种场景吧, 我觉得对于高度为0的场景, 表格内部就不应该允许拖拽

不要客气,我也是第一次使用这个表格,我还会有问题问的。感谢你们团队为我们提供这么方便的工具

@hurricane1998
Copy link

hurricane1998 commented Oct 7, 2023

@lijinke666 您好,我遇到了另外一个关于隐藏列头的问题,使用style里的colCfg的hideMesureColumn属性没有变化,设置colCfg的height为0后,第一行的上方会没有边框,我的猜测是因为这个边框是使用了列头的边框,但是此时列头高度没有了,所以第一行也没有边框了

这是height设为0的截图:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
❔question 疑问/使用问题
Projects
None yet
Development

No branches or pull requests

3 participants