diff --git a/kernel/av/table.go b/kernel/av/table.go index fabba724b..1370a18a4 100644 --- a/kernel/av/table.go +++ b/kernel/av/table.go @@ -727,7 +727,7 @@ func (table *Table) FilterRows() { rows := []*TableRow{} for _, row := range table.Rows { block := row.GetBlockValue() - if block.NotAffectFilter() { + if nil != block && block.NotAffectFilter() { rows = append(rows, row) continue } diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index fbcf32356..ae5241ad9 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -589,7 +589,7 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a keyValues := rows[row.ID] ial := map[string]string{} block := row.GetBlockValue() - if !block.IsDetached { + if nil != block && !block.IsDetached { ial = GetBlockAttrsWithoutWaitWriting(row.ID) } content := renderTemplateCol(ial, cell.Value.Template.Content, keyValues) @@ -606,12 +606,11 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a case av.KeyTypeUpdated: // 渲染更新时间 ial := map[string]string{} block := row.GetBlockValue() - if !block.IsDetached { + if nil != block && !block.IsDetached { ial = GetBlockAttrsWithoutWaitWriting(row.ID) } updatedStr := ial["updated"] - if "" == updatedStr { - block := row.GetBlockValue() + if "" == updatedStr && nil != block { cell.Value.Updated = av.NewFormattedValueUpdated(block.Block.Updated, 0, av.UpdatedFormatNone) cell.Value.Updated.IsNotEmpty = true } else { @@ -1184,7 +1183,7 @@ func GetLastSortRow(rows []*av.TableRow) *av.TableRow { for i := len(rows) - 1; i >= 0; i-- { row := rows[i] block := row.GetBlockValue() - if !block.NotAffectFilter() { + if nil != block && !block.NotAffectFilter() { return row } } diff --git a/kernel/treenode/node.go b/kernel/treenode/node.go index 6d413d0e6..eaf962dcf 100644 --- a/kernel/treenode/node.go +++ b/kernel/treenode/node.go @@ -708,7 +708,7 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a keyValues := rows[row.ID] ial := map[string]string{} block := row.GetBlockValue() - if !block.IsDetached { + if nil != block && !block.IsDetached { ial = cache.GetBlockIAL(row.ID) if nil == ial { ial = map[string]string{} @@ -728,15 +728,14 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a case av.KeyTypeUpdated: // 渲染更新时间 ial := map[string]string{} block := row.GetBlockValue() - if !block.IsDetached { + if nil != block && !block.IsDetached { ial = cache.GetBlockIAL(row.ID) if nil == ial { ial = map[string]string{} } } updatedStr := ial["updated"] - if "" == updatedStr { - block := row.GetBlockValue() + if "" == updatedStr && nil != block { cell.Value.Updated = av.NewFormattedValueUpdated(block.Block.Updated, 0, av.UpdatedFormatNone) cell.Value.Updated.IsNotEmpty = true } else {