table-more.vue 2.39 KB
Newer Older
wangcong committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
<template>
  <div :style="{ width: fileWidth }" class="table">
    <Table border :columns="columns1" :data="tableData" @on-selection-change="selectChange" ref="selection" height="400">
      <template slot-scope="{ row }" slot="addDate">
        {{ row.addDate | filterCreateTime }}
      </template>
    </Table>
    <Page :total="total" :current="pageNum" :page-size="pageSize" show-sizer size="small"  class="pageClass" 
    @on-change="changePage"    @on-page-size-change="pageSizeChange" />
  </div>
</template>
<script>
export default {
  props: {
    fileWidth: {
      type: String,
      default: "100%",
    },
    tableData: {
      type: Array,
      default: () => [],
    },
    total: {
      type: Number,
      default: 0,
    },
  },
  computed: {},
  filters: {
    filterCreateTime(val) {
      return val.substr(0, 10)+' '+val.substr(11, 8)
    },
  },
  data() {
    return {
      selectArr:[],
      pageSize:10,
      pageNum:1,
      columns1: [
        {
          title: "序号",
          type: "index",
          width: 70,
          align: 'center'
        },
        {
          title: "选择",
          type: "selection",
          width: 55,
          align: 'center'
        },
        {
          title: "标题",
          key: "title",
          align: 'center',
        },
        {
          title: "反馈时间",
          key: "addDate",
          slot: 'addDate',
          align: 'center',
        },
        {
          title: "查看",
          key: "action",
          width: 80,
          align: "center",
          render: (h, params) => {
            return h("div", [
              h(
                "Icon",
                {
                  props: {
                    type: "md-eye",
                  },
                  on: {
                    click: () => {
                      this.seeDetail(params);
                    },
                  },
                }
              ),
            ]);
          },
        }
      ],
    };
  },
  methods: {
    changePage(page){
      this.pageNum = page;
      this.$emit('changePage',page);
    },
    pageSizeChange(size){
      this.pageSize = size;
      this.$emit('pageSize',size); 
    },
    seeDetail(params){
      this.$emit('seeDetail',params.row);
    },
    selectChange(arr){
      this.selectArr = arr;
    }
  },
};
</script>
<style lang="less" scoped>
  .table {
    .pageClass{
      margin:10px
    }
  }
</style>