uview常用组件案例操作及详解(一) 选择器 picker
1.图片示例
2.使用方法
*为简便代码不提供样式
<view><view><text>行业性质</text><text>*</text></view><view><text v-if="!text.industry" @click="industrysTypeShow = true;">请选择</text><text v-else @click="industrysTypeShow = true;">{{text.industry}}</text><u-picker :show="industrysTypeShow" :columns="industrys" @confirm="industrysTypeConfirm":defaultIndex="findIndex(detail.industry, industrys[0])" keyName="name"@cancel="cancel('industrysTypeShow')"></u-picker><u-icon slot="right" name="arrow-right" @click="industrysTypeShow = true;"></u-icon></view></view>
3.效果
4.步骤详解
4.1涉及字段介绍(以下字段可替换成自己的)
4.1.1 text.industry:
在界面上显示选中值
4.1.2industrysTypeShow:
在data中注册,控制选择器的显示和隐藏,在data中赋值为false
4.1.3 industrys:
这是一个二维数组,存放的是选择器内的选择值,如果你现在拿到的是一个一维数组Array,在他的外面包一个中括号即可变成二维数组,形如[Array]
4.1.4industrysTypeConfirm:
这是一个方法,用于点击选择器右上角的确定后执行的动作,主要有两步:1.给界面text.industry赋值,渲染文字 2.给后端字段赋值
industrysTypeConfirm(e) {this.detail.industry = e.value[0].theValuethis.text.industry = e.value[0].namethis.cancel('industrysTypeShow')},
4.1.5cancel(‘industrysTypeShow’):
这是一个方法,用于点击选择器右上角的“取消”后执行的动作
cancel(visible) {this[visible] = false},
4.1.6findIndex(detail.industry, industrys[0]):
findIndex(code, list) {if (!code || !list) {return [0]}return [list.findIndex((item) => (item.code === code || item.theValue === code))]},
4.2属性介绍(更多属性可参考uview官网)
4.2.1 :show
用于控制选择器的弹出与收起
4.2.2 :columns
设置每一列的数据,
4.2.3 @confirm
点击确定按钮,返回当前选择的值
4.2.4 :defaultIndex
各列的默认索引,即点开弹窗默认选中的
单列模式
如设置defaultIndex为[1]表示默认选中第2个(从0开始),[5]表示选中第6个。
多列模式
如设置defaultIndex为[1, 3]表示第一列默认选中第2个,第二列默认选中第4个。
4.2.5 keyName
自定义需要展示的text属性键名,适用于当二维数组里有很多字段
4.2.6 @cancel
点击取消按钮