UNPKG

sard-uniapp

Version:

sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

121 lines (75 loc) 5.29 kB
--- title: SelectPopout subtitle: 列表选择弹出框 group: 表单组件 version: 1.27+ --- ## 介绍 组合了列表选择、弹出框组件,实现了便捷快速的选择功能。 ## 引入 ```js import SelectPopout from 'sard-uniapp/components/select-popout/select-popout.vue' ``` ## 代码演示 ### 基础使用 使用 `v-model` 双向绑定当前值,使用 `v-model:visible` 控制弹出框显隐。 <<< @demo/select-popout/demo/Basic.vue ### 选项分组 你可以使用 `SelectOptionGroup` 组件对选项进行分组,`label` 属性为分组名。 <<< @demo/select-popout/demo/Group.vue ### 多选 设置 `multiple` 属性即可开启多选。 <<< @demo/select-popout/demo/Multiple.vue ### 显示工具栏 多选时,可是设置 `show-toolbar` 显示工具栏,工具栏提供“选择所有”和“清空选择”功能按钮,并显示当前所有的个数。 <<< @demo/select-popout/demo/Toolbar.vue ### 最多选择个数 多选时,可以设置 `multiple-limit` 属性限制最多选择个数。 <<< @demo/select-popout/demo/MultipleLimit.vue ### 禁用选项 设置选项的 `disabled` 属性,可以禁止选择此选项。 <<< @demo/select-popout/demo/Disabled.vue ### 自定义选项标签 默认选项标签只能设置文字,如果要自定义结构,可以使用选项的 `label` 插槽。 <<< @demo/select-popout/demo/CustomLabel.vue ### 自定义整个选项 如果要自定义整个选项结构,可以使用默认插槽,并设置选项的 `plain` 属性来清除默认样式。 <<< @demo/select-popout/demo/CustomOption.vue ### 筛选选项 如果选项数量太多,可以设置 `filterable` 属性显示筛选输入框;并设置 `filter-method` 属性,这个属性是一个回调函数,会在输入框值改变时触发,并接收输入框值作为参数。筛选逻辑需自行实现。 <<< @demo/select-popout/demo/Filterable.vue ### 远程 如果需要从远程服务器获取数据,可以设置 `filterable` 显示输入框,设置 `remote` 属性启动远程逻辑,设置 `remote-method` 属性处理远程数据获取逻辑。 `remote-method` 属性是一个回调函数,接收输入框值、当前页码和表示是否刷新的布尔值作为参数,并返回 `Promise<boolean>` 类型值,`Promise` 的布尔类型泛型参数表示是否已获取全部数据。 `Select` 组件远程功能使用到了 `LoadMore` 组件和 `useLoadMore` 钩子函数,会在触底时加载下一页数据。 <<< @demo/select-popout/demo/Remote.vue ## API ### SelectPopoutProps 继承 [`SelectProps`](./select#SelectProps) 并有以下额外属性: | 属性 | 描述 | 类型 | 默认值 | | ------------------------------- | ---------------------------------------------- | ---------- | ------ | | popout-class | 弹窗框根元素类名 | string | - | | popout-style | 弹窗框根元素样式 | StyleValue | - | | visible (v-model) | 是否显示弹出框 | boolean | - | | title | 弹出框标题 | string | - | | show-confirm <sup>1.27.1+</sup> | 单选时是否显示确定按钮,隐藏按钮可用于快捷选择 | boolean | true | | validate-event | 是否触发表单验证 | boolean | true | | resettable | 关闭弹出框后,是否可复位弹出框值 | boolean | false | ### SelectPopoutSlots 继承 [`SelectSlots`](./select#SelectSlots) ### SelectPopoutEmits | 事件 | 描述 | 类型 | | ------------------ | --------------------------- | ------------------------------------ | | update:model-value | 组件值改变时触发 | `(value: any) => void` | | change | 组件值改变时触发 | `(value: any) => void` | | update:visible | 弹出框显隐时触发 | `(visible: boolean) => void` | | confirm | 点击确定按钮时触发 | `() => void` | | visible-hook | 入场/退场动画状态改变时触发 | `(name: TransitionHookName) => void` | | before-enter | 入场动画开始前触发 | `() => void` | | enter | 入场动画开始时触发 | `() => void` | | after-enter | 入场动画结束时触发 | `() => void` | | enter-cancelled | 入场动画取消时触发 | `() => void` | | before-leave | 退场动画开始前触发 | `() => void` | | leave | 退场动画开始时触发 | `() => void` | | after-leave | 退场动画结束时触发 | `() => void` | | leave-cancelled | 退场动画取消时触发 | `() => void` |