• elementUI分页测试页面简单封装


    elementUI分页简单封装( 自己写的数据没有接口 )

    样式只是UI框架中的样式,没有改为什么没改因为不会改。。。简单的封装了下,太深的操作还没有领悟到

    封装一点一点学,代码一点一点优化

     注:不要忘了更换数据也就是表格绑定的那个数组

     表格组件( 注释全部都在代码上了 )

    <template>
      <div>
        <!-- 表格数据 -->
        <el-table style=" 100%;" :data="ary">
          <el-table-column type="index" width="50"></el-table-column>
          <el-table-column label="编号" prop="age" width="180"></el-table-column>
          <el-table-column
            label="用户姓名"
            prop="name"
            width="180"
          ></el-table-column>
          <el-table-column label="爱好" prop="like" width="180"></el-table-column>
        </el-table>
        <!-- 引入组件 -->
        <!-- 把分页的值、表格绑定的所有值传给子组件用于分页操作 -->
        <!-- 接收子组件的事件进行触发更改表格绑定的值是个数组 -->
        <cop-page :pageCount="pageCount" :listVal="list" @boom="boom"></cop-page>
      </div>
    </template>
    
    <script>
    import "element-ui/lib/theme-chalk/index.css";
    import "iview/dist/styles/iview.css";
    import coPpage from "./cc/index.vue";
    export default {
      components: { "cop-page": coPpage },
      watch: {},
      props: {},
      data() {
        return {
          // 表格数据
          list: [
            {
              name: "1",
              age: 11,
              like: "我"
            },
            {
              name: "2",
              age: 12,
              like: "饿"
            },
            {
              name: "3",
              age: 13,
              like: "了"
            },
            {
              name: "4",
              age: 14,
              like: "真"
            },
            {
              name: "5",
              age: 15,
              like: "饿"
            },
            {
              name: "6",
              age: 16,
              like: "了"
            }
          ],
          // 定义的分页 传给子组件
          pageCount: {
            pageList: 3, //每页显示多少条
            currentPage1: 1, //当前页
            total: 6 //总数量
          },
          ary: [] //准备更换表格绑定的数据 在分页操作后更换
        };
      },
      computed: {},
      methods: {
        // 触发子组件传来的方法 更改表格绑定的值
        boom(Val) {
          this.ary = Val;
        }
      },
      created() {
        // 直接执行
        this.boom();
      },
      mounted() {}
    };
    </script>
    <style lang="scss" type="text/css" scoped></style>

    分页组件( 注释全部都在代码上了 )

    <template>
      <!-- 分页组件 -->
      <div class="block">
        <el-pagination
          background
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page.sync="currentPage1"
          :page-size="pageList"
          layout="total, prev, pager, next"
          :total="total"
          @click.native="pageFunction()"
        ></el-pagination>
      </div>
    </template>
    
    <script>
    import "element-ui/lib/theme-chalk/index.css";
    import "iview/dist/styles/iview.css";
    export default {
      components: {},
      // 接收父组件传来的分页值和表格绑定的数组值
      props: {
        pageCount: Object,
        listVal: Array
      },
      data() {
        return {
          pageList: this.pageCount.pageList, //绑定父组件传来的每页数量
          currentPage1: this.pageCount.currentPage1, //绑定父组件传来的当前页
          total: this.pageCount.total, //接收父组件传来的数量总数
          // 定义一个空数组用于存放新的表格数据  并传回去
          ary: []
        };
      },
      watch: {},
      computed: {},
      methods: {
        handleCurrentChange(val) {
          //当前页
          this.currentPage1 = val;
        },
        handleSizeChange: function(size) {
          //每页条数每页下拉显示数据
          this.pageList = size;
        },
        // 表格数据分页的方法
        tablePagination() {
          let array = [],
            startNum = 0,
            endNum = 0;
          this.total = this.listVal.length;
          startNum = (this.currentPage1 - 1) * this.pageList;
          if (this.currentPage1 * this.pageList < this.total) {
            endNum = this.currentPage1 * this.pageList;
          } else {
            endNum = this.total;
          }
          array = this.listVal.slice(startNum, endNum);
          this.ary = array; //给新数组赋值并替换绑定 这个时候的ary就是表格中的所有数据
          // 发送自定义事件并把新的表格数据传过去
          this.$emit("boom", this.ary);
        },
        // 翻页事件
        pageFunction() {
          // 执行表格数据分页的方法
          this.tablePagination();
        }
      },
      created() {
        this.tablePagination();
      },
      mounted() {}
    };
    </script>
    <style lang="scss" type="text/css" scoped></style>
  • 相关阅读:
    用Rails.5.2+ Vue.js做 vue-todolist app
    vue-router
    Vue.js教程--基础2(事件处理 表单输入绑定
    Vue组件(知识)
    Vue.js教程--基础(实例 模版语法template computed, watch v-if, v-show v-for, 一个组件的v-for.)
    ActiveRecord Nested Atrributes 关联记录,对嵌套属性进行CURD
    (GoRails) 自动侦测用户的时区,使用javascript 的jszt库。
    (GoRails) 如何去掉form输入框头尾的空格;何时用callbacks,gem;
    JQ each
    JQ 更改li 颜色
  • 原文地址:https://www.cnblogs.com/home-/p/11821852.html
Copyright © 2020-2023  润新知