在uni-app中使用picker写一个下拉框,包含通过、返修、报废

该代码示例展示了一个使用Vue.js创建的Picker组件,用于实现‘通过’、‘返修’、‘报废’三个选项的选择。组件包含数据绑定,其中value表示选中项,range定义可选范围。当选择改变时,onChange方法会被触发,更新value并打印所选值。

<template>
  <view>
    <view class="picker">
      <view class="picker__hd">
        <view class="picker__hd__text">请选择</view>
      </view>
      <view class="picker__bd">
        <picker :value="value" mode="selector" range="{{ range }}" @change="onChange">
          <view class="picker__item">{{ range[value] }}</view>
        </picker>
      </view>
    </view>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        value: 0,
        range: ['通过', '返修', '报废']
      };
    },
    methods: {
      onChange(e) {
        this.value = e.detail.value;
        console.log('选择的值为', this.range[this.value]);
      }
    }
  }
</script>

<style>
  .picker {
    margin-top: 20px;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 5px;
  }
  .picker__hd {
    font-size: 16px;
    text-align: center;
    margin-bottom: 20px;
  }
  .picker__hd__text {
    font-weight: bold;
  }
  .picker__bd {
    text-align: center;
  }
  .picker__item {
    font-size: 18px;
    color: #333;
  }
</style>
 

### 实现省市区三级联动的核心方法 在 `uni-app` 中,`uni-data-picker` 是一个用于实现多级联动选择的组件,尤其适合实现省市区三级联动。实现的关键在于加载本地数据(如 JSON 格式的省市区数据)并通过 `v-model` 和 `@change` 事件控制数据联动。 首先,需要引入省市区的 JSON 数据文件。例如,从指定路径加载数据: ```javascript localData: require('@/static/addressData.json') ``` 该 JSON 数据应包含省、市、区的层级结构,确保 `uni-data-picker` 能够正确解析并显示三级联动结构[^1]。 ### 数据绑定与事件处理 使用 `v-model` 绑定用户选择的值,可以获取完整的省市区路径。例如: ```vue <uni-data-picker v-model="startingPoint" :localdata="localData" @change="handleChangeStartPoint" ></uni-data-picker> ``` 在 `methods` 中定义 `handleChangeStartPoint` 方法,用于处理用户选择的值。通常,选择器返回的是层级的 `value`,需要将其转换为 `[省, 市, 区]` 的数组格式: ```javascript handleChangeStartPoint(value) { let data = value.detail.value; let arr = []; for (let i in data) { arr.push(data[i].value); } this.startingPoint = arr; } ``` 这样可以将用户选择的省市区数据存储在 `startingPoint` 中,便于后续使用,如提交表单时提取省、市、区的 ID: ```javascript formData.provinceId = formData.region[0].value; formData.cityId = formData.region[1].value; formData.regionId = formData.region[2].value; ``` ### 样式与交互优化 为了提升用户体验,`uni-data-picker` 支持通过 `placeholder` 设置默认提示,并允许自定义样式。例如: ```vue <uni-data-picker v-model="startingPoint" placeholder="请选择出发地" style="background: #eeeeee; border-color: #eeeeee;" :localdata="localData" @change="handleChangeStartPoint" ></uni-data-picker> ``` 该样式设置可让用户更直观地识别选择器的作用,并提升整体界面的美观性[^1]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小孟的报错日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值