MCPcopy Index your code
hub / github.com/TerryZ/v-selectpage

github.com/TerryZ/v-selectpage @v3.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0.1 ↗ · + Follow
103 symbols 254 edges 40 files 1 documented · 1% 1 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SelectPage

v-selectpage

CircleCI code coverage npm version

SelectPage for Vue3, a select items components provides the list of items with pagination

Financial Contributors on Open Collective JavaScript Style Guide npm download

If you are using vue 2.x version, please use v-selectpage 2.x version instead

Examples and Documentation

Documentation and examples please visit below sites

The jQuery version: SelectPage

Features

  • Display contents with pagination
  • I18n support
  • Select single / multiple options
  • Tags form for multiple selection
  • Keyboard navigation
  • Searchable
  • Provide display forms such as list view and table view
  • Customization of row / cell content rendering
  • Core module that can be used independently

I18n support languages

  • Chinese Simplified
  • English
  • Japanese
  • Arabic
  • Spanish
  • German
  • Romanian
  • French
  • Portuguese-Brazil
  • Polish
  • Dutch
  • Chinese Traditional
  • Russian
  • Turkish

Installation

https://nodei.co/npm/v-selectpage.png?downloads=true&downloadRank=true&stars=true

Install v-selectpage to your project

# npm
npm i v-selectpage
# yarn
yarn add v-selectpage
# pnpm
pnpm add v-selectpage

Usage

Quick start example

<template>
  <SelectPageList
    key-prop="id"
    label-prop="name"
    @fetch-data="fetchData"
  />
</template>

<script setup lang="ts">
import { SelectPageList } from 'v-selectpage'
import type { PageParameters, FetchDataCallback } from 'v-selectpage'

function fetchData (data: PageParameters, callback: FetchDataCallback) {
  // pagination information and search keyword
  const { search, pageNumber, pageSize } = data

  // request parameters
  const parameters = {
    search,
    pageNumber,
    pageSize,
    ...
  }

  // fetch data list with pagination state
  doDataRequest(parameters)
    .then(resp => {
      /**
       * Return data format for example
       * {
       *   list: object[], // current page data list
       *   total: number // result count
       * }
       */
      callback(resp.list, resp.total)
    })
    .catch(() => {
      // clear the data list if necessary when request fails
      callback([], 0)
    })
}
</script>

Set default selected items

<template>
  <SelectPageTable
    language="zh-chs"
    v-model="selected"
    :multiple="true"
    :columns="columns"
    @fetch-data="fetchData"
    @fetch-selected-data="fetchSelectedData"
  />
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { SelectPageTable } from 'v-selectpage'
import type {
  SelectPageKey, FetchSelectedDataCallback,
  PageParameters, FetchDataCallback, SelectPageTableColumn
} from 'v-selectpage'

const selected = ref<SelectPageKey[]>([2, 4, 7])
const columns: SelectPageTableColumn[] = [
  { title: 'Id', data: 'id' },
  { title: 'Team name', data: row => `${row.abbr} - ${row.name}`, width: 250 },
  { title: 'Description', data: 'desc' }
]

// fetch current page data
function fetchData (data: PageParameters, callback: FetchDataCallback) {
  ...
}
// fetch selected items data
function fetchSelectedData (keys: SelectPageKey[], callback: FetchSelectedDataCallback) {
  // get data models by keys
  doDataRequest({ keys }).then(resp => {
    callback(resp)
  })
}
</script>

Plugin preview

List view for Single selection

single

List view for multiple selection with tags form

multiple

Table view for single selection

table

Dependencies

License

license

Extension points exported contracts — how you extend this code

SelectPageTableColumn (Interface)
(no doc)
types/table.d.ts
ComponentProps (Interface)
(no doc)
types/common.d.ts
ISelectPageListCore (Interface)
(no doc)
types/list.d.ts
TableProps (Interface)
(no doc)
types/table.d.ts
BaseProps (Interface)
(no doc)
types/common.d.ts
ISelectPageList (Interface)
(no doc)
types/list.d.ts
ISelectPageTableCore (Interface)
(no doc)
types/table.d.ts
DropdownProps (Interface)
(no doc)
types/common.d.ts

Core symbols most depended-on inside this repo

dataListHandle
called by 8
examples/handles.js
useInject
called by 7
src/core/data.js
selectedItemsHandle
called by 7
examples/handles.js
setSelected
called by 6
src/core/list.js
isMultiple
called by 6
src/core/helper.js
useSelectPageHandle
called by 6
examples/handles.js
selectItem
called by 5
src/core/list.js
isItemSelected
called by 3
src/core/list.js

Shape

Function 93
Interface 10

Languages

TypeScript100%

Modules by API surface

src/core/list.js17 symbols
src/core/render.js16 symbols
src/core/data.js10 symbols
examples/handles.js8 symbols
src/core/helper.js7 symbols
types/table.d.ts4 symbols
types/common.d.ts4 symbols
src/core/utilities.js4 symbols
src/core/pagination.js4 symbols
src/modules/Search.js3 symbols
src/components/CircleButton.js3 symbols
src/SelectPageTable.js3 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add v-selectpage \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact