diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index f4f3c7c02..e16ee3ffd 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -649,6 +649,7 @@ func GetBlockAttributeViewKeys(blockID string) (ret []*BlockAttributeViewKeys) { } // 字段排序 + refreshAttrViewKeyIDs(attrView) sorts := map[string]int{} for i, k := range attrView.KeyIDs { sorts[k] = i @@ -2449,24 +2450,7 @@ func SortAttributeViewKey(avID, keyID, previousKeyID string) (err error) { return } - existKeyIDs := map[string]bool{} - for _, keyValues := range attrView.KeyValues { - existKeyIDs[keyValues.Key.ID] = true - } - - for k, _ := range existKeyIDs { - if !gulu.Str.Contains(k, attrView.KeyIDs) { - attrView.KeyIDs = append(attrView.KeyIDs, k) - } - } - - var tmp []string - for _, k := range attrView.KeyIDs { - if ok := existKeyIDs[k]; ok { - tmp = append(tmp, k) - } - } - attrView.KeyIDs = tmp + refreshAttrViewKeyIDs(attrView) var currentKeyID string var idx, previousIndex int @@ -2495,6 +2479,29 @@ func SortAttributeViewKey(avID, keyID, previousKeyID string) (err error) { return } +func refreshAttrViewKeyIDs(attrView *av.AttributeView) { + // 订正 keyIDs 数据 + + existKeyIDs := map[string]bool{} + for _, keyValues := range attrView.KeyValues { + existKeyIDs[keyValues.Key.ID] = true + } + + for k, _ := range existKeyIDs { + if !gulu.Str.Contains(k, attrView.KeyIDs) { + attrView.KeyIDs = append(attrView.KeyIDs, k) + } + } + + var tmp []string + for _, k := range attrView.KeyIDs { + if ok := existKeyIDs[k]; ok { + tmp = append(tmp, k) + } + } + attrView.KeyIDs = tmp +} + func (tx *Transaction) doAddAttrViewColumn(operation *Operation) (ret *TxErr) { var icon string if nil != operation.Data {