配置参数

config

key value 描述
pageConfig {pageSize: number, total: number, currentPage: number} 分页器的基本映射

event

key value 描述
handleSizeChange pageSize:number 选择的页数
handleCurrentChange pageNo:number 选择的页码

配合page.hook使用

<template>
    <div>
        <page @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange" :pageConfig="pageConfig"></page>
        <v-md-editor v-model="result"
                     style="width: 100%"
                     mode="preview"></v-md-editor>
    </div>
</template>

<script lang="ts">
    import { defineComponent, reactive, toRefs} from 'vue';
    import page from '@/components/page/page.vue';
    import pageNation from '@/components/hooks/page';
    export default defineComponent({
      name: 'pages',
      components: {
        page
      },
      setup () {
        const search = reactive({
          result: '',
          getList :() => {
            search.result = '``` javascript \n' +
              JSON.stringify(pageAction.pageConfig, null, 2) +
              '\n```';
          },
          handleCurrentChange: (val:number) => {
            pageAction.handleCurrentChange(val);
          },
          handleSizeChange: (val:number) => {
            pageAction.handleSizeChange(val)
          }
        });
          // 传入配置对象的实例,与需要页码页数变换 调用的函数
        const pageAction = pageNation(search, 'getList');
        pageAction.pageConfig.total = 300;
        search.result = '``` javascript \n' +
          JSON.stringify(pageAction.pageConfig, null, 2) +
          '\n```';
        const usePage = toRefs(pageAction);
        const useSearch = toRefs(search);
        return {
          ...usePage,
          ...useSearch
        }
      }
    })
</script>

page.hook 源码



import {reactive} from 'vue';
import projectConfigs from '@/config';

function pageNation(search: any, funName: string = projectConfigs.pageHookConfig.defaultSearchFunctionName) {
  const pageTool = reactive({
    pageConfig: projectConfigs.pageConfig,
    handleSizeChange: (val: number) => {
      pageTool.pageConfig.pageSize = val;
      search[funName]();
    },
    handleCurrentChange: (val: number) => {
      pageTool.pageConfig.currentPage = val;
      search[funName]();
    }
  });

  return pageTool;
}

export default pageNation;

results matching ""

    No results matching ""