UNPKG

@daysnap/horn-ui

Version:

hron ui

223 lines (200 loc) 5.43 kB
# HorSelectPicker ### 介绍 搭配cell的picker ## 代码演示 ### 基础用法 ```html <template> <demo-block title="基础用法"> <hor-select-picker v-bind="selectPicker" v-model="selectPicker.modelValue" /> <hor-cell label="modelValue数字或字符串" :value="selectPicker.modelValue"></hor-cell> </demo-block> <demo-block title="基础用法"> <hor-select-picker v-bind="selectPicker2" v-model="selectPicker2.modelValue" /> <hor-cell label="modelValue对象" :value="selectPicker2.modelValue"></hor-cell> </demo-block> <demo-block title="级联要求v-model:必须为数组(value:string)"> <hor-select-picker v-bind="selectPicker3" v-model="selectPicker3.modelValue" /> <hor-cell label="modelValue对象" :value="selectPicker3.modelValue"></hor-cell> </demo-block> <demo-block title="级联要求v-model:必须为数组(value:object)"> <hor-select-picker v-bind="selectPicker4" v-model="selectPicker4.modelValue" /> <hor-cell label="modelValue对象" :value="selectPicker4.modelValue"></hor-cell> </demo-block> </template> <script setup lang="ts"> import type { PickerColumn } from 'vant' import type { HorSelectPickerProps } from '@daysnap/horn-ui' import { showLoadingToast } from 'vant' import { HorSelectPicker, HorCell } from '@daysnap/horn-ui' import { ref } from 'vue' const singleColumns: PickerColumn = [ { text: '浙江', value: 'Zhejiang', }, { text: '西湖区', value: 'Xihu' }, { text: '余杭区', value: 'Yuhang' }, { text: '鼓楼区', value: 'Gulou' }, { text: '台江区', value: 'Taijiang' }, { text: '思明区', value: 'Siming' }, { text: '海沧区', value: 'Haicang' }, { text: '福建', value: 'Fujian', }, ] const columns1: PickerColumn = [ { text: '浙江', value: 'Zhejiang', children: [ { text: '杭州', value: 'Hangzhou', children: [ { text: '西湖区', value: 'Xihu' }, { text: '余杭区', value: 'Yuhang' }, ], }, { text: '温州', value: 'Wenzhou', children: [ { text: '鹿城区', value: 'Lucheng' }, { text: '瓯海区', value: 'Ouhai' }, ], }, ], }, { text: '福建', value: 'Fujian', children: [ { text: '福州', value: 'Fuzhou', children: [ { text: '鼓楼区', value: 'Gulou' }, { text: '台江区', value: 'Taijiang' }, ], }, { text: '厦门', value: 'Xiamen', children: [ { text: '思明区', value: 'Siming' }, { text: '海沧区', value: 'Haicang' }, ], }, ], }, ] const columns2 = () => { return new Promise<PickerColumn>((res) => { const toast = showLoadingToast('加载中...') setTimeout(() => { toast.close() res(columns1) }, 2000) }) } const selectPicker = ref<Partial<HorSelectPickerProps>>({ modelValue: 'Gulou', label: '请选择类型', required: true, title: '请选择类型', placeholder: '请选择公司', clearable: true, formatter: (v: any) => v + '省', options: singleColumns, }) const selectPicker2 = ref<Partial<HorSelectPickerProps>>({ modelValue: { text: '海沧区', value: 'Haicang' }, label: '请选择类型', required: true, title: '请选择类型', placeholder: '请选择公司', valueType: 'object', clearable: true, formatter: (v: any) => v + '省', options: singleColumns, }) const selectPicker3 = ref<Partial<HorSelectPickerProps>>({ // modelValue: { text: '西湖区', value: 'Xihu' }, modelValue: ['Zhejiang', 'Hangzhou', 'Xihu'], label: '请选择类型', required: true, title: '请选择类型', placeholder: '请选择公司', clearable: true, triggerType: 'immediately', formatter: (v: any) => v + '省', options: columns2, }) const selectPicker4 = ref<Partial<HorSelectPickerProps>>({ modelValue: [{ text: '海沧区', value: 'Haicang' }], label: '请选择类型', required: true, title: '请选择类型', valueType: 'object', placeholder: '请选择公司', clearable: true, triggerType: 'lazy', formatter: (v: any) => v + '省', options: columns2, }) </script> ``` ## API ### 属性 Props <table> <tr> <td>名称</td> <td>类型</td> <td>默认值</td> </tr> <tr v-for="(item, key) in horSelectPickerProps" :key="key"> <td>{{ key }}</td> <td>{{ parseType(item.type || item) }}</td> <td>{{ reserve(item.default, '-') }}</td> </tr> </table> <table> <tr> <td>名称</td> <td>说明</td> </tr> <tr> <td>xx</td> <td>xxx</td> </tr> </table> ### 插槽 Slots <table> <tr> <td>名称</td> <td>说明</td> </tr> <tr> <td>xx</td> <td>xxx</td> </tr> </table> ### 实例方法 <table> <tr> <td>名称</td> <td>说明</td> </tr> <tr> <td>xx</td> <td>xxx</td> </tr> </table> <script setup lang="ts"> import { reserve } from '@daysnap/utils' import { HorCell } from '../hor-cell' import { HorSelectPicker, horSelectPickerProps } from '.' import { parseType } from '../utils' </script>