1.0.3 • Published 1 month ago

@tanzhenxing/zx-transfer v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
1 month ago

zx-transfer 穿梭框组件

一个支持 H5、微信小程序、App 的多端穿梭框组件,基于 uni-app + vue3 + 实现,参考 Element Plus Transfer 设计。

功能特性

  • 支持左右穿梭、批量选择、禁用项
  • 支持搜索过滤
  • 支持字段别名
  • 支持插槽自定义内容、底部、空内容
  • 适配多端(H5/小程序/APP),不依赖浏览器特有 DOM

基本用法

<template>
  <zx-transfer v-model="value" :data="data" />
</template>

<script setup>
import { ref } from 'vue'
import zxTransfer from '@/components/zx-transfer/zx-transfer.vue'

const data = ref([
  { key: 1, label: '选项一' },
  { key: 2, label: '选项二' },
  { key: 3, label: '选项三', disabled: true }
])
const value = ref([2])
</script>

属性(Props)

属性名说明类型默认值
modelValue / v-model右侧列表选中项的 key 数组Array[]
data数据源,见下表Array[]
filterable是否可搜索Booleanfalse
filterPlaceholder搜索框占位符String请输入搜索内容
filterMethod自定义搜索方法Function-
props字段别名 {key,label,disabled}Object{key:'key',label:'label',disabled:'disabled'}
leftTitle左侧标题String列表1
rightTitle右侧标题String列表2
emptyText空内容提示String暂无数据
leftDefaultChecked左侧初始勾选项 key 数组Array[]
rightDefaultChecked右侧初始勾选项 key 数组Array[]

数据源格式

默认:

[
  { key: 1, label: '选项一', disabled: false },
  ...
]

可通过 props 属性自定义字段名。

事件(Events)

事件名说明回调参数
update:modelValuev-model 绑定值变化时触发新的 key 数组
change穿梭操作后触发新 key 数组, 方向, 移动的 key
left-check-change左侧勾选项变化时触发勾选的 key 数组
right-check-change右侧勾选项变化时触发勾选的 key 数组

插槽(Slots)

插槽名说明参数
option自定义数据项内容{ option }
left-footer左侧底部自定义内容-
right-footer右侧底部自定义内容-
left-empty左侧无数据时自定义内容-
right-empty右侧无数据时自定义内容-

进阶用法

可搜索

<zx-transfer v-model="value" :data="data" filterable filter-placeholder="搜索..." />

字段别名

<zx-transfer
  v-model="value"
  :data="data"
  :props="{ key: 'id', label: 'desc', disabled: 'disable' }"
/>

自定义内容

<zx-transfer v-model="value" :data="data">
  <template #option="{ option }">
    <view>{{ option.label }} <text v-if="option.disabled">(禁用)</text></view>
  </template>
  <template #left-footer>
    <text>左侧底部自定义</text>
  </template>
  <template #right-footer>
    <text>右侧底部自定义</text>
  </template>
</zx-transfer>

注意事项

  • 请确保 data 中每项的 key 唯一。
  • 组件高度、样式可通过外部样式类自定义。
  • 适用于 uni-app H5、微信小程序、App 等多端。

参考文档

1.0.3

1 month ago

1.0.2

1 month ago

1.0.1

2 months ago