Skip to content

Elevator 电梯楼层

介绍

用于列表快速定位以及索引的显示。

基础用法

html
<template>
  <nut-elevator
    :index-list="list"
    :height="260"
    @click-item="onItemClick"
    @click-index="onIndexClick"
  ></nut-elevator>
</template>
ts
const list = ref([
  {
    title: "A",
    list: [
      { id: 1, name: "安徽" }
    ]
  },
  {
    title: "B",
    list: [
      { id: 2, name: "北京" }
    ]
  },
  {
    title: "G",
    list: [
      { id: 3, name: "广西" },
      { id: 4, name: "广东" }
    ]
  },
  {
    title: "H",
    list: [
      { id: 5, name: "湖南" },
      { id: 6, name: "湖北" }
    ]
  }
]);

function onItemClick(key: string, item: any) {
  console.log("item-click", key, item);
}

function onIndexClick(key: string) {
  console.log("index-click", key);
}

自定义索引

html
<template>
  <nut-elevator
    :index-list="list"
    :height="260"
    accept-key="num"
  ></nut-elevator>
</template>
ts
const list = ref([
  {
    num: "",
    list: [
      { id: 1, name: "北京" },
      { id: 2, name: "上海" },
      { id: 3, name: "深圳" },
      { id: 4, name: "广州" },
      { id: 5, name: "杭州" }
    ]
  },
  {
    num: "",
    list: [
      { id: 6, name: "成都" },
      { id: 7, name: "西安" },
      { id: 8, name: "天津" },
      { id: 9, name: "武汉" },
      { id: 10, name: "长沙" },
      { id: 11, name: "重庆" },
      { id: 12, name: "苏州" },
      { id: 13, name: "南京" }
    ]
  },
  {
    num: "",
    list: [
      { id: 14, name: "西宁" },
      { id: 15, name: "兰州" },
      { id: 16, name: "石家庄" },
      { id: 17, name: "秦皇岛" },
      { id: 18, name: "大连" },
      { id: 19, name: "哈尔滨" },
      { id: 20, name: "长春" },
      { id: 21, name: "太原" }
    ]
  }
]);

索引吸顶

html
<template>
  <nut-elevator
    :index-list="list"
    :height="260"
    is-sticky
  ></nut-elevator>
</template>

自定义内容

html
<template>
  <nut-elevator :index-list="list" :height="260">
    <template #default="{ item }">
      <nut-icon name="jd"></nut-icon>
      <text>{{ item.name }}</text>
    </template>
  </nut-elevator>
</template>

API

Props

参数说明类型可选值默认值
height电梯区域的高度number / string-200px
accept-key索引字段string-title
index-list索引列表Array-[]
is-sticky索引是否吸顶boolean-false
space-height右侧锚点的上下间距number-23
title-height左侧索引的高度number-35

Events

事件名说明类型
click-item点击内容时触发(key: string, item: any) => void
click-index点击索引时触发(key: string) => void
change索引改变时触发(index: number) => void

Slots

名称说明类型
default自定义左侧索引下每条数据的内容{ item: any }

Exposes

通过 ref 可以获取到 Elevator 实例并调用实例方法。

名称说明类型
scrollTo滚动到对应索引的位置(index: number) => void

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值
--nut-elevator-list-item-highcolorvar(--nut-primary-color)
--nut-elevator-list-item-font-size12px
--nut-elevator-list-item-font-color#333333
--nut-elevator-list-item-name-padding0 20px
--nut-elevator-list-item-name-height30px
--nut-elevator-list-item-name-line-height30px
--nut-elevator-list-item-code-font-size14px
--nut-elevator-list-item-code-font-color#1a1a1a
--nut-elevator-list-item-code-font-weight500
--nut-elevator-list-item-code-padding0 20px
--nut-elevator-list-item-code-height35px
--nut-elevator-list-item-code-line-height35px
--nut-elevator-list-item-code-after-width100%
--nut-elevator-list-item-code-after-height1px
--nut-elevator-list-item-code-after-bg-color#f5f5f5
--nut-elevator-list-item-code-current-box-shadow0 3px 3px 1px rgba(240, 240, 240, 1)
--nut-elevator-list-item-code-current-bg-color#fff
--nut-elevator-list-item-code-current-border-radius50%
--nut-elevator-list-item-code-current-width45px
--nut-elevator-list-item-code-current-height45px
--nut-elevator-list-item-code-current-line-height45px
--nut-elevator-list-item-code-current-positionabsolute
--nut-elevator-list-item-code-current-right60px
--nut-elevator-list-item-code-current-top50%
--nut-elevator-list-item-code-current-transformtranslateY(-50%)
--nut-elevator-list-item-code-current-text-aligncenter
--nut-elevator-list-item-bars-positionabsolute
--nut-elevator-list-item-bars-right8px
--nut-elevator-list-item-bars-top50%
--nut-elevator-list-item-bars-transformtranslateY(-50%)
--nut-elevator-list-item-bars-padding15px 0
--nut-elevator-list-item-bars-background-color#eeeff2
--nut-elevator-list-item-bars-border-radius6px
--nut-elevator-list-item-bars-text-aligncenter
--nut-elevator-list-item-bars-z-index1
--nut-elevator-list-item-bars-inner-item-padding3px
--nut-elevator-list-item-bars-inner-item-font-size10px
--nut-elevator-list-fixed-colorvar(--nut-primary-color)
--nut-elevator-list-fixed-bg-colorvar(--nut-white)
--nut-elevator-list-fixed-box-shadow0 0 10px #eee
--nut-elevator-list-item-bars-inner-item-active-colorvar(--nut-primary-color)

MIT Licensed