最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue?el-pagination分頁查詢封裝的示例代碼

 更新時(shí)間:2023年06月29日 10:36:35   作者:請(qǐng)叫我歐皇i  
本文主要介紹了vue?el-pagination分頁查詢封裝的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

需求:因?yàn)樾枰玫奖韱尾樵兊牡胤教嗔耍詾榱吮苊饷總€(gè)頁面都寫分頁組件,直接封裝好調(diào)用就完事了,簡(jiǎn)簡(jiǎn)單單

1.創(chuàng)建Pigination.vue公用組件

<template>
  <div :class="{'hidden':hidden}" class="pagination-container">
    <el-pagination
      :background="background"
      :current-page.sync="currentPage"
      :page-size.sync="pageSize"
      :layout="layout"
      :page-sizes="pageSizes"
      :total="total"
      v-bind="$attrs"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
    ></el-pagination>
  </div>
</template>
<script>
export default {
  name: 'Pagination',
  props: {
    total: {
      required: true,
      type: Number
    },
    // 當(dāng)前頁數(shù)
    page: {
      type: Number,
      default: 1
    },
    // 限制,一頁多多少行
    limit: {
      type: Number,
      default: 20
    },
    // 分頁
    pageSizes: {
      type: Array,
      default() {
        return [10, 20, 30, 50, 100]
      }
    },
    layout: {
      type: String,
      default: 'total, sizes, prev, pager, next, jumper'
    },
    background: {
      type: Boolean,
      default: true
    },
    autoScroll: {
      type: Boolean,
      default: true
    },
    hidden: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    // 當(dāng)前頁數(shù)
    currentPage: {
      get() {
        return this.page;
      },
      set(val) {
        this.$emit('update:page', val);
      }
    },
    pageSize: {
      get() {
        return this.limit;
      },
      set(val) {
        this.$emit('update:limit', val);
      }
    }
  },
  methods: {
    handleSizeChange(val) {
      this.$emit('pagination', { page: this.currentPage, size: val });
      // if (this.autoScroll) {
      //   scrollTo(0, 800);
      // }
    },
    handleCurrentChange(val) {
      this.$emit('pagination', { page: val, size: this.pageSize });
      // if (this.autoScroll) {
      //   scrollTo(0, 800);
      // }
    }
  }
}
</script>
<style scoped>
.pagination-container {
  background: #fff;
  padding-top: 10px;
}
.pagination-container.hidden {
  display: none;
}
</style>

2.需要使用分頁組件的頁面調(diào)用

<template>
    <div class="content-box">
        <div class="container">
            <p>主體頁面 2 - 2</p>
            <div class="table-container">
                <el-table
                    ref="Table2"
                    :data="list"
                    style="width: 100%;"
                    show-overflow-tooltip="true"
                    @selection-change="handleSelectionChange"
                    border
                >
                    <el-table-column type="selection" align="center"></el-table-column>
                    <el-table-column label="操作" width="120" align="center" fixed="right"> </el-table-column>
                </el-table>
            </div>
            <!-- 分頁組件 -->
            <Pagination :total="total" :page.sync="listQuery.pageNum" :limit.sync="listQuery.pageSize" @pagination="getList"></Pagination>
        </div>
    </div>
</template>
<script>
import Pagination from '@/components/common/Pagination';
import { testApi } from '@/api/test';
const defaultListQuery = {
    pageNum: 1,//給后端的數(shù)據(jù),可以根據(jù)后端需要更改
    pageSize: 10,
    keyword: ''
};
export default {
    data() {
        return {
            listQuery: Object.assign({}, defaultListQuery),//淺拷貝,引用數(shù)據(jù)類型相互影響
            list: [],
            total: 0,
            listLoading: true,
            selectedList: []
        };
    },
    components: {
      // 注冊(cè)分頁
        Pagination
    },
    created() {
        this.getList();
    },
    methods: {
        getList() {
            // 獲取數(shù)據(jù)列表
            this.listLoading = true;
            testApi(this.listQuery).then(res => {
                this.listLoading = false;
                this.list = res.data.list;
                this.total = res.data.total;
            });
        },
        handleSelectionChange(val) {
            // 批量選擇行數(shù)
            this.selectedList = val;
        }
    }
};
</script>

3.結(jié)果

到此這篇關(guān)于vue el-pagination分頁查詢封裝的文章就介紹到這了,更多相關(guān)vue el-pagination分頁查詢封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

湟中县| 兴安县| 日土县| 萨迦县| 乾安县| 宣化县| 渭南市| 南丹县| 政和县| 合水县| 南召县| 三原县| 黄平县| 涿州市| 金坛市| 云南省| 柳林县| 铜梁县| 贡嘎县| 禄丰县| 嵊州市| 普宁市| 额敏县| 象山县| 江陵县| 沙雅县| 普定县| 永顺县| 汝城县| 乌兰察布市| 虹口区| 鄂托克前旗| 兴宁市| 崇左市| 阳春市| 齐河县| 宜川县| 历史| 华容县| 淄博市| 大安市|