基本使用
通过绑定ref拿到 open 方法打开,使用 close 手动关闭
通过 v-model 绑定值,通过 title 修改标题,通过 list 绑定显示的列表
通过 keyName 确定value值,默认为 value ,通过 labelName 确定显示的值,默认为 label,通过 change 事件监听值改变
vue
<template>
<uv-picker
round
ref="pickerRef"
v-model="value"
title="标题"
:list="list"
key-name="value"
label-name="value"
@change="change"
/>
</template>
<script setup>
import { ref } from "vue"
const pickerRef = ref(null)
const value = ref("")
const list = ref(
[
{ value: '杭州' },
{ value: '宁波' },
{ value: '温州' },
{ value: '肇庆' },
{ value: '湖州' },
{ value: '广州' }
])
const openPicker = () => {
pickerRef.value.open()
}
function change(value) {
console.log(value)
}
</script>多列选择
通过传入多维数组实现多列选择
vue
<template>
<uv-picker
round
ref="pickerRef1"
v-model="value1"
title="标题"
:list="list1"
/>
</template>
<script setup>
import { ref } from "vue"
const pickerRef1 = ref(null)
const value1 = ref("")
const openPicker = () => {
pickerRef1.value.open()
}
const list1 = ref(
[
[
{ value: '星期一' },
{ value: '星期二' },
{ value: '星期三' },
{ value: '星期四' },
{ value: '星期五' },
{ value: '星期六' },
{ value: '星期日' }
],
[
{ value: '早上' },
{ value: '中午' },
{ value: '晚上' }
]
])
</script>级联选择
数组格式带有 children 字段开启级联选择,可以通过 childrenName属性 修改默认的 children 字段
vue
<template>
<uv-picker
round
ref="pickerRef2"
v-model="value2"
title="标题"
:list="list2"
/>
</template>
<script setup>
import { ref } from "vue"
const pickerRef2 = ref(null)
const openPicker = () => {
pickerRef2.value.open()
}
const value2 = ref('福建,厦门,海沧区')
const list2 = [
{
label: '浙江',
value: '浙江',
children: [
{
label: '杭州',
value: '杭州',
children: [
{ label: '西湖区', value: '西湖区' },
{ label: '余杭区', value: '余杭区' }
]
},
{
label: '温州',
value: '温州',
children: [
{ label: '鹿城区', value: '鹿城区' },
{ label: '瓯海区', value: '瓯海区' }
]
}
]
},
{
label: '福建',
value: '福建',
children: [
{
label: '福州',
value: '福州',
children: [
{ label: '鼓楼区', value: '鼓楼区' },
{ label: '台江区', value: '台江区' }
]
},
{
label: '厦门',
value: '厦门',
children: [
{ label: '思明区', value: '思明区' },
{ label: '海沧区', value: '海沧区' }
]
}
]
}
]
</script>props
| 属性 | 含义 | 类型 | 默认值 |
|---|---|---|---|
| modelValue | 双向绑定的值 | String | - |
| title | 标题 | String | - |
| leftName | 左边按钮的名字 | String | '取消' |
| rightName | 右边按钮的名字 | String | '确定' |
| list | 渲染列表 | Array | - |
| keyName | 绑定的字段名 | String | 'value' |
| labelName | 显示的字段名 | String | 'label' |
| childrenName | 子项的字段名 | String | 'children' |
events
| 事件名称 | 含义 | 参数 |
|---|---|---|
| change | 选项改变时 | 当前的子项 |
| cancle | 点击取消时 | - |
| confim | 点击确定时 | - |
css 变量
css
--uv-picker-title-btn-font-size: 14px;
--uv-picker-title-font-size: 16px;
--uv-picker-title-font-weight: 700;
--uv-picker-title-color: #323233;
--uv-picker-title-padding: 2px 0 12px;
--uv-picker-title-left-text-color: #969799;
--uv-picker-title-right-text-color: #576b95;
--uv-picker-content-height: 230px;
--uv-picker-content-wrapper-border-top-and-bottom: 1px solid #f7f8f9;
--uv-picker-content-wrapper-box-shadow: 0 0 5px #f7f8f9;
UV-UI