<template>
  <div class="app-container">
    <TableExhibitionQuery :headers="headers" />
    <el-row>
      <el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
        <TableExhibitionHeader :headers.sync="headers" />
      </el-col>
      <el-col :xs="24" :sm="24" :md="18" :lg="18" :xl="18">
        <TableExhibitionBody :headers="headers" :list="list" />
      </el-col>
    </el-row>
  </div>
</template>

<script>
import TableExhibitionBody from "./TableExhibitionBody";
import TableExhibitionQuery from "./TableExhibitionQuery";
import TableExhibitionHeader from "./TableExhibitionHeader";
import { genTableSnippet } from "./snippetTable.js";

export default {
  components: {
    TableExhibitionBody,
    TableExhibitionHeader,
    TableExhibitionQuery,
  },
  props: {
    tableData: {
      type: Object,
      default: () => {
        return {};
      },
    },
  },
  data() {
    return {
      list: [],
      code: "",
      headers: [],
      query: {
        limit: 20,
        cursor: 1,
      },
      total: 0,
    };
  },
  watch: {
    tableData: {
      handler(val) {
        this.list = val.data && val.data.slice(0, 3);
        if (this.list) {
          this.headers = Object.keys(this.list[0]).map((item) => {
            // opt 为需要对 字段的操作,''空就不操作,'time' 处理时间,'template' 将字段放在template 里面,方便后续操作
            return {
              value: this.list[0][item],
              key: item,
              label: item,
              show: true,
              opt: "",
              query: false,
            };
          });
        }
      },
      immediate: true,
    },
    headers: {
      handler(val) {
        this.code = genTableSnippet(val, this.getTableAPI);
        this.$store.dispatch("table/setTableCode", this.code);
      },
      deep: true,
    },
  },
  created() {},
  methods: {
    editdata() {},
    test(val) {},
  },
};
</script>