Skip to content
On this page
你当前查看的文档是tmui3.2.0(已不再支持NVUE)
[tmui3.1.x nvue点我] [tmui4.x uniappx原生开发代替nvue]

表单组件

选择器 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>

🌶️ 兼容性

平台兼容

H5uniAPP小程序version
☑️☑️☑️☑️

🌱 参数

参数名类型默认值描述
listTM_PICKER_ITEM_INFO[]():TM_PICKER_ITEM_INFO[]=>[]asTM_PICKER_ITEM_INFO[]数据
modelValueArray<string | number>():string[]=>[]asstring[]当前选中项的id值
modelStrstring""当前选中项的回显文本等同v-model:model-str请不要更改此值,此值只对外输出显示。如果空值,将内部首次递归渲染回显文本。如果你后台返回,就不会计算。因此如果对性能有要求的请务必让后台在首次显示时先回显文本,这样内部在第一次时不会递归计算回显文本,提高性能。
modelShowbooleanfalse当前打开的状态。等同v-model:model-show
titlestring"请选择"顶部标题
lazyContentbooleanfalse是否懒加载内部内容。当前你的列表内容非常多,且影响打开的动画性能时,请务必设置此项为true,以获得流畅视觉效果。如果选择数据较少没有必要打开
cellUnitsstring[]():string[]=>[]asstring[]显示在顶部的单位名称
rangKeystring"id"自定义标识id
rangTextstring"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方法

方法名参数返回值描述