PickerCity (城市选择)
自带全国城市数据的Picker选择组件
支持平台
安卓 | ios | 鸿蒙 | web | 微信小程序 |
---|---|---|---|---|
√ | √ | √ | √ | √ |
示例代码
html
<template>
<t-page title="城市选择" main-class="p-30">
<t-card main-class="mb-30" title="Picker-City 城市选择"
sub-title="Canvas绘制更高性能 异步渲染不卡页面,自研滚动算法不会在滚动结束的时候回弹"></t-card>
<t-col main-class="tdr tdb mb 30 tdp">
<t-text main-class="slh-60">v-model:{{(val.getArray<string>('ids'))?.join('-')}}</t-text>
<t-text main-class="slh-60">keys:{{(val.getArray<string>('ids'))?.join('-')}}</t-text>
<t-text main-class="slh-60">values:{{(val.getArray<string>('values'))?.join('-')}}</t-text>
</t-col>
<t-section title="基础功能(嵌入模式)" main-class="mb-30"></t-section>
<t-picker-city main-class="mb-30 tdr tdb" v-model="val" :list="list" :embeddable="true">
</t-picker-city>
<t-button type="p" @click="test">双向绑定测试</t-button>
<t-section title="基础功能(弹窗模式)" type="p" main-class="mb-30"></t-section>
<t-picker-city main-class="mb-30" :list="list" v-model="val" @change="change">
<template #button>
<t-button type="p">请选择您的城市</t-button>
</template>
</t-picker-city>
</t-page>
</template>
<script setup>
import { TuiApi } from '@/api'
const val = ref<UTSJSONObject>({ ids: ['130000', '130500', '130502'] })
const keys = ref<string[]>([])
const values = ref<string[]>([])
function test() {
val.value = { ids: ['150000', '152500', '152522'] } as UTSJSONObject
}
const list = ref<UTSJSONObject[]>([] as UTSJSONObject[])
function change(e : UTSJSONObject) {
keys.value = e.getArray<string>('ids')!
values.value = e.getArray<string>('values')!
}
function confirm(e : UTSJSONObject) {
// keys.value = e.keys
// values.value = e.values
}
onLoad((_) => {
})
</script>
属性
名称 | 类型 | 默认值 | 说明 | 可选值 |
---|---|---|---|---|
size | String | mini | 组件尺寸 | large(大尺寸), medium(中尺寸), small(小尺寸), mini(迷你) |
type | String | "" | 组件类型 | info(信息), primary(正常), error(错误), warning(警告), success(成功) |
disabled | Boolean | false | 组件是否禁用 | false, true |
stop | Boolean | false | 是否阻止事件冒泡(Tui统一写法处理事件冒泡) | false, true |
hover | Boolean | true | 是否有点击效果 | false, true |
path | String | "" | 点击组件后跳转的页面路径,如果为空则响应点击事件,如果不为空则跳转页面不会响应单击事件。 | - |
mainClass | String | "" | 组件根节点的样式 | - |
nativeClass | String | "" | 组件根节点原生样式 | - |
effect | String | "normal" | 组件显示主题 | normal(正常), dark(深色), light(浅色), plain(镂空) |
title | String | 地区 | 标题 | |
labelClass | String | `` | 副标题样式 | |
modelValue | any | { ids: [] as string[], values: [] as string[] } as UTSJSONObject | 双向绑定的值 | |
embeddable | Boolean | false | 是否嵌入页面。默认为弹窗模式 | |
titleClass | String | `` | 标题样式 | |
list | any | `` | 城市数据源 |
事件
名称 | 返回参数 | 说明 |
---|---|---|
cancel | - | 点击取消按钮时触发 |
change | (e : UTSJSONObject) | 双向绑定的值变化时触发 |
confirm | (e : UTSJSONObject) | 点击确认按钮时触发 |
方法
名称 | 参数 | 返回值 | 说明 |
---|---|---|---|
show | - | - | 打开,关闭组件 |
插槽
名称 | 返回值 | 说明 |
---|---|---|
name | - |