表单组件
选择器 TmPicker
可单列或者多列
🌶️ 示例
查看模拟效果+
示例模板
vue
<template>
<view>
<tm-sheet>
<tm-text font-size="36" class=" text-weight-b mb-8 d-block">选择器 tmPicker</tm-text>
<tm-text color="#999999" class="text-size-b">
这是tmPickerView封装的弹出式,详细可见tmPickerView文档
</tm-text>
</tm-sheet>
<tm-sheet>
<tm-picker :list="list">
<tm-button :block="true">打开选项</tm-button>
</tm-picker>
</tm-sheet>
<tm-sheet>
<tm-text font-size="36" class=" text-weight-b mb-8 d-block">城市选择器</tm-text>
<tm-picker @change="change" rang-key="code" rang-text="name" v-model="selecteds" v-model:model-str="str"
:list="city">
<tm-button :block="true">打开选项</tm-button>
</tm-picker>
<tm-sheet :margin="['0', '24']" color="#f5f5f5" dark-color="#333">
<tm-text color="#999999">选中的值:{{ selecteds.join(',') }}</tm-text>
<tm-text color="#999999">选中的值回显文本:{{ str }}</tm-text>
</tm-sheet>
<tm-button skin="thin" :block="true" @click="fuzhi">赋值</tm-button>
</tm-sheet>
<view style="height: 50px;"></view>
</view>
</template>
<script lang="ts" setup>
import { ref } from "vue"
import city from "@/uni_modules/tm-ui/static/pca-code.json"
const list = [
{
title: '江西',
id: "9-1",
children: [
{
title: '南昌',
id: "132",
children: [
{ title: '青山湖区', id: "1-2" },
{ title: '高新区', id: "1-3", disabled: true },
{ title: '红谷滩区', id: "1-4" },
],
},
{
title: '九江', id: "222",
children: [
{ title: '2青山湖区', id: "1-32" },
{ title: '2高新区', id: "1-33" },
{ title: '3红谷滩区', id: "1-34" },
],
},
],
},
{
title: '安徽',
id: "10-13",
children: [
{
title: '5南昌',
id: "3",
children: [
{ title: '5青山湖区', id: "1-52" },
{ title: '5高新区', id: "1-53" },
{ title: '5红谷滩区', id: "1-54" },
],
},
{
title: '5南昌',
id: "36",
children: [
{ title: '6青山湖区', id: "61-52" },
{ title: '6高新区', id: "61-53" },
{ title: '6红谷滩区', id: "61-54" },
],
},
],
},
];
const selecteds = ref(['15', '1504', '150404'])
const str = ref("")
const change = (ids: string[]) => {
console.log(ids)
}
const fuzhi = () => {
selecteds.value = ['14', '1403', '140311']
}
</script>
<style lang="scss"></style>
🌶️ 兼容性
平台兼容
H5 | uniAPP | 小程序 | version |
---|---|---|---|
☑️ | ☑️ | ☑️ | ☑️ |
🌱 参数
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
list | TM_PICKER_ITEM_INFO[] | ():TM_PICKER_ITEM_INFO[]=>[]asTM_PICKER_ITEM_INFO[] | 数据 |
modelValue | Array<string | number> | ():string[]=>[]asstring[] | 当前选中项的id值 |
modelStr | string | "" | 当前选中项的回显文本等同v-model:model-str请不要更改此值,此值只对外输出显示。如果空值,将内部首次递归渲染回显文本。如果你后台返回,就不会计算。因此如果对性能有要求的请务必让后台在首次显示时先回显文本,这样内部在第一次时不会递归计算回显文本,提高性能。 |
modelShow | boolean | false | 当前打开的状态。等同v-model:model-show |
title | string | "请选择" | 顶部标题 |
lazyContent | boolean | false | 是否懒加载内部内容。当前你的列表内容非常多,且影响打开的动画性能时,请务必设置此项为true,以获得流畅视觉效果。如果选择数据较少没有必要打开 |
cellUnits | string[] | ():string[]=>[]asstring[] | 显示在顶部的单位名称 |
rangKey | string | "id" | 自定义标识id |
rangText | string | "title" | 自定义标识文本字段名 |
🌹 事件
事件名 | 参数 | 返回数据 | 描述 |
---|---|---|---|
cancel | - | - | 取消时触发 |
confirm | 名称:ids,当前选中项的id值, | - | 确认触发 |
change | 名称:ids,当前选中项的id值, | - | 滑动变换时触发 |
update:modelShow | - | - | 变量控制打开状态 |
等同v-model:model-show | |||
update:modelStr | - | - | 等同v-model:model-str |
只对外输出当前回选区的选中项的文本,不要外部改变此值。 | |||
update:modelValue | - | - | - |
🌽 slot插槽
插槽名 | 数据 | 描述 |
---|---|---|
default | - | 插槽,默认触发打开选择器。你的默认布局可以放置在这里。 |
🥗 ref方法
方法名 | 参数 | 返回值 | 描述 |
---|