test.vue
<template>
<view>
<view class="uni-list">
<view class="title d-flex" style="width: 150rpx;">
类型
</view>
<view class="uni-list-cell-db" style="display: inline-block;">
<picker v-if="visitType !== 6 && visitType !== 7 && visitType !== 8" mode="selector" class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center"
style="height:100rpx;font-size: 30rpx;color: #555;" @change="visitTypeChange" :range="visitTypeList" range-key="label"
v-model="visitType">
<view class="picker">{{ selectedText }}</view>
</picker>
<picker v-else mode="selector" class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;font-size: 30rpx;color: #555;"
@change="visitTypeChange" :range="visitTypeList" range-key="label" v-model="visitType">
<view class="picker" v-if="visitType === 6">建筑</view>
<view class="picker" v-else-if="visitType === 7">设备</view>
<view class="picker" v-else-if="visitType === 8">管道</view>
</picker>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
visitTypeList: [{
value: 0,
label: '请选择类型'
},
{
value: 6,
label: '建筑',
},
{
value: 7,
label: '设备',
},
{
value: 8,
label: '管道'
}
],
selectedText: '请选择类型',
visitType: 0,
}
},
onLoad(option) {
// 在编辑模式下,将类型的值赋给 editVisitType
this.visitType = 7; // 将 type 值赋给 visitType 变量
},
methods: {
//类型
visitTypeChange: function(e) {
const {value} = e.detail;
this.visitType = this.visitTypeList[value].value
this.selectedText = this.visitTypeList[value].label
console.log('picker发送选择改变,携带值为', this.visitType, this.selectedText)
},
},
}
</script>
在模板(<template>)部分,有一个包含了两个picker组件的视图。根据visitType的值,决定了要显示哪个picker组件。
其中,第一个picker组件使用v-if条件来判断,如果visitType的值不是6、7、8,则显示一个普通的选择器,选项从visitTypeList中取得;第二个picker组件使用v-else条件,根据visitType的值分别显示不同的选项。
在<script>部分,定义了组件的数据部分。visitTypeList数组存储了所有可选类型的选项,每个选项包含value和label两个属性。selectedText用于显示当前选中的类型文本,初始值是"请选择类型"。visitType表示当前选中的类型的值,默认为0。
在onLoad生命周期钩子中,将visitType的值设置为7,这是在编辑模式下的一个示例。
在methods中定义了visitTypeChange方法,当用户选择了类型时会触发该方法。方法中通过e.detail获取选择器的值,然后根据值从visitTypeList中获取对应的类型值和文本,并更新visitType和selectedText的值。
这个组件可以用于在界面上选择不同的类型,并根据选择的类型进行相应的处理。
网友评论