Vue+Element-Ui简单实现动态生成的表格

顾名思义 就是根据后端传回来的数据 前端来生产不同表头的表格来表现数据;

前端代码如下:

<el-table
        :data="tableData"
        :height="tableHeight"
        :table-loading="tableLoading"
        border
        :stripe="true"
        :highlight-current-row="true"
        @refresh-change="refreshChange"
        :header-cell-style="{color:'black'}"
        
      >

       
        <el-table-column
          type="index"
          label="序号"
          :show-overflow-tooltip="true"
          fixed
        >
        </el-table-column>
        <template v-for="(col,index) in cols">
          <el-table-column
          :key="index"
            :prop="col.prop"
            :label="col.label"
            :width="col.width"
            :show-overflow-tooltip="true"
            :sortable="col.sortable"
            sortable
          >
          </el-table-column>
        </template>

      </el-table>
export default {
  data() {
    return {
      
      cols: [{ prop: "eg", label: "请选择查询" }],
      tableData: [],
    };
  },
 mounted() {
    searchChange() {
      //先发出表头的请求
      this.GeteHead();
      //请求数据
      this.querydata();
    },
}

前端绑定一个搜索按钮,一次请求两个接口

分别请求表头 和  数据;

响应数据就是正常返回数据;

后端在响应表头数据的时候 保证传回正确格式就行

eg:

*1 写死固定数量的表头

try {
            if (model.getQueryType().equals("0")) {
                List<PubSysCheckHeadModel> list = new ArrayList<>();
                list.add(new PubSysCheckHeadModel("job", "Job"));
                list.add(new PubSysCheckHeadModel("what", "What"));
                list.add(new PubSysCheckHeadModel("lastDate", "LastDate"));
                list.add(new PubSysCheckHeadModel("nextDate", "NextDate"));
                list.add(new PubSysCheckHeadModel("interval", "Interval"));
                return new PageJson(list);
            }else if (model.getQueryType().equals("1")) {
                List<PubSysCheckHeadModel> list = new ArrayList<>();
                list.add(new PubSysCheckHeadModel("triggerName", "TriggerName"));
                list.add(new PubSysCheckHeadModel("tableName", "TableName"));
                list.add(new PubSysCheckHeadModel("status", "Status"));
                list.add(new PubSysCheckHeadModel("triggeringEvent", "TriggeringEvent"));
                return new PageJson(list);
            }else if ... ...

        *2   在1的基础上,去数据库查,再填入到list里,换汤不换药。

每次请求都会不断的填充前端容器,达到所谓动态效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值