This commit is contained in:
Daniel 2025-07-27 20:10:56 +08:00
parent 15a17393b3
commit f970f5c848
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -1573,6 +1573,19 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) {
return
}
// 临时记录每个分组视图的状态,以便后面重新生成分组后可以恢复这些状态
type GroupState struct {
Folded bool
Hidden int
}
groupStates := map[string]*GroupState{}
for _, groupView := range view.Groups {
groupStates[groupView.Name] = &GroupState{
Folded: groupView.GroupFolded,
Hidden: groupView.GroupHidden,
}
}
group := view.Group
view.Groups = nil
viewable := sql.RenderView(attrView, view, "")
@ -1586,21 +1599,6 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) {
return
}
// 如果是按日期分组,则需要记录每个分组视图的一些状态字段,以便后面重新计算分组后可以恢复这些状态
type GroupState struct {
Folded bool
Hidden int
}
groupStates := map[string]*GroupState{}
if isGroupByDate(view) {
for _, groupView := range view.Groups {
groupStates[groupView.Name] = &GroupState{
Folded: groupView.GroupFolded,
Hidden: groupView.GroupHidden,
}
}
}
var rangeStart, rangeEnd float64
switch group.Method {
case av.GroupMethodValue:
@ -1738,15 +1736,13 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) {
view.Groups = append(view.Groups, v)
}
if isGroupByDate(view) {
view.GroupUpdated = time.Now().UnixMilli()
view.GroupUpdated = time.Now().UnixMilli()
// 则恢复分组视图状态
for _, groupView := range view.Groups {
if state, ok := groupStates[groupView.Name]; ok {
groupView.GroupFolded = state.Folded
groupView.GroupHidden = state.Hidden
}
// 则恢复分组视图状态
for _, groupView := range view.Groups {
if state, ok := groupStates[groupView.Name]; ok {
groupView.GroupFolded = state.Folded
groupView.GroupHidden = state.Hidden
}
}
@ -1756,7 +1752,7 @@ func genAttrViewViewGroups(view *av.View, attrView *av.AttributeView) {
if av.GroupOrderAsc == view.Group.Order {
return util.NaturalCompare(iName, jName)
}
return !util.NaturalCompare(iName, jName)
return util.NaturalCompare(jName, iName)
})
}