1.子表添加数据问题

1.1 问题描述

在实施项目的时候,应用场景是,在表单加载时,使用自定义查询查询列表数据出来,然后自动将数据加载到子表中。发现数据能够显示出来,但是比如是3条数据,但是显示出来的数据都是一样的。意思是三条数据都变成一样的了。

var ary=[{selected:false,A:"A1",B:"B1"},
      {selected:false,A:"A2",B:"B2"},
      {selected:false,A:"A3",B:"B3"}]

  this.data.sub__TAB001.push(...ary);

类似上面的代码。

1.2 解决办法

在数据中添加一个index_数据。

var ary=[{selected:false,index_:this.getUtil().randomId(),A:"A1",B:"B1"},
      {selected:false,index_:this.getUtil().randomId(),A:"A2",B:"B2"},
      {selected:false,index_:this.getUtil().randomId(),A:"A3",B:"B3"}]

在html端,需要使用如下代码:

v-for="(item,index) in data.sub__TAB001" :key="item.index_"

需要注意的是,index_ 不能重复。

1.3 子表添加数据需要注意点

添加一行数据时,需要以下两个数据:

{selected:false,index_:1}

selected:表示是否选中,index_ 作为行key ,这个key时必须的,否则会出现一些意外的问题。

2. 子表有数据但是显示为空

2.1 问题现象

2.2 问题原因

这个是 httml 丢了数据判断。

2.3 解决办法

<div class="tableEmpty" v-if="data.sub__splist&amp;&amp;data.sub__splist.length &lt;= 0">
                <a-empty></a-empty>
            </div>

注意下 sub__splist,这个是 sub__ +子表名

文档更新时间: 2022-01-24 18:02   作者:zyg