zoukankan      html  css  js  c++  java
  • Vue elementUi input查询、el-table数据表 、el-pagination分页的使用

    <template>
    <div>
    <el-input v-model="input" placeholder="请输入关键字"></el-input>
    <el-table
    ref="multipleTable"
    :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"
    tooltip-effect="dark"
    style=" 100%"
    @selection-change="handleSelectionChange"
    >
    <el-table-column type="selection" width="55"></el-table-column>
    <el-table-column label="日期" width="120">
    <template slot-scope="scope">{{ scope.row.date }}</template>
    </el-table-column>
    <el-table-column prop="name" label="姓名" width="120"></el-table-column>
    <el-table-column prop="address" label="地址" show-overflow-tooltip></el-table-column>
    </el-table>
    <el-pagination
    @size-change="handleSizeChange"
    @current-change="handleCurrentChange"
    :current-page="currentPage"
    :page-sizes="[4, 8]"
    :page-size="2"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total"
    ></el-pagination>
    </div>
    </template>
    <script>
    export default {
    data() {
    return {
    input: "",
    tableList: null,
    currentPage: 1,
    pageSize: 8,
    };
    },
    watch: {
    tableData() {
    this.currentPage = 1;
    }
    },
    computed: {
    //表名列表中搜索
    tableData() {
    var search = this.input.toString().toLowerCase(); //将用户输入的值变字符串并小写
    if (search) {
    return this.tableList.filter(function(dataNews) {      // 如果用户输入将this.tableList数组过滤返回this.tableList的key值数组,然后在key的数组中将key进行转化成字符串变小写再转变的数组中是否有用户输入的key值,如果有返回this.tableList的key 作为this.tableData的值
    return Object.keys(dataNews).some(function(key) {
    return (
    String(dataNews[key])
    .toLowerCase()
    .indexOf(search) > -1
    );
    });
    });
    }
    return this.tableList;
    },
    total() {
    return this.tableData.length;
    }
    },
    mounted() {
    console.log(this.tableData);
    this.$axios.get("/datatable.json").then((res, rej) => {
    this.tableList = res.data.data.tableData;
    });
    },
    methods: {
    handleSelectionChange(val) {
    this.multipleSelection = val;
    console.log(val);
    },
    handleSizeChange(val) {
    this.pageSize = val;
    console.log(this.pa)
    },
    handleCurrentChange(val) {
    this.currentPage = val;
    console.log(val);
    }
    }
    };
    </script>
     
    这里tableData是从后台获取的数据,在计算属性上定义通过this.tableList赋值,这里Input赋值关键字查询,分页的当前页通过handleCurrentChange方法获取,分页的每页显示个数选择器通过handleSizeChange来获取,这里tableData通过tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)方式来获取
     



  • 相关阅读:
    (24)码表
    (23)IO之打印流 PrintStream & Printwriter
    (22)Properties,这不会Io流中的类,但是通常和IO流中的一些流配合使用
    (21)IO流之对象的序列化和反序列化流ObjectOutputStream和ObjectInputStream
    (20)IO流之SequenceInputStream 序列流
    01.vue基础
    02.1插值操作-Mustache语法
    jQuery对节点的增删改查和一些常用的逻辑处理
    递归 阶乘
    电脑远程连接
  • 原文地址:https://www.cnblogs.com/zhx119/p/11208793.html
Copyright © 2011-2022 走看看