关于前端:elementUI-表格tablecolumn列顺序错乱解决

55次阅读

共计 1225 个字符,预计需要花费 4 分钟才能阅读完成。

问题

须要遍历渲染的 table 列的程序为:

              this.list = [
                {
                  label: '地区',
                  prop:  'province'
                },
                {
                  label: '共计',
                  children: [
                    {
                      label: '共计',
                      prop: 'totalCount'
                    },
                    {
                      label: '沪主板',
                      prop: 'shzb'
                    },
                    {
                      label: '科创板',
                      prop: 'kcb'
                    },
                    {
                      label: '深主板',
                      prop: 'szzb'
                    },
                    {
                      label: '创业板',
                      prop: 'cyb'
                    },
                    {
                      label: '北证',
                      prop: 'bjs'
                    }
                  ]
                },
                {
                  label: '本年新增',
                  children: [
                    {
                      label: '本年新增共计',
                      prop: 'qTotalCount'
                    },
                    {
                      label: '沪主板',
                      prop: 'shzb'
                    },
                    {
                      label: '科创板',
                      prop: 'kcb'
                    },
                    {
                      label: '深主板',
                      prop: 'szzb'
                    },
                    {
                      label: '创业板',
                      prop: 'cyb'
                    },
                    {
                      label: '北证',
                      prop: 'bjs'
                    }
                  ]
                }
              ]

渲染代码:

    <el-table
      :data="dataList"
      style="width: 100%"
    >
      <el-table-column
        label="序号"
        type="index"
      >
      </el-table-column>
      <el-table-column
        v-for="item in list"
        :label="item.label"
        :prop="item.prop"
        :key="item.label"
        align="center"
        :sortable="item.prop"
      >
        <div v-if="item.children">
          <el-table-column
            v-for="val in item.children"
            :label="val.label"
            :prop="val.prop"
            :key="val.label"
            sortable
            align="center"
          >
          </el-table-column>
        </div>
      </el-table-column>
    </el-table>

然而理论的成果却是:

共计应该放在第一列, 然而在理论渲染后却在最初一列, 呈现了错乱

解决形式

将架构代码

        <div v-if="item.children">
          <el-table-column
            v-for="val in item.children"
            :label="val.label"
            :prop="val.prop"
            :key="val.label"
            sortable
            align="center"
          >
          </el-table-column>
        </div>

中的 div 标签换成template

起因是el-table 不能嵌套 el-table-column 以外的元素

https://github.com/ElemeFE/element/issues/1638

在我的状况中, 尽管是 el-table-column 嵌套el-table-column, 然而通过尝试办法仍然是实用的, 问题解决:

正文完
 0