• vant下拉单选


    参考@官网文档

    代码:

    <template>
      <div>
        <van-field readonly="" is-link @click="show = true" v-model="inputval" name="测试单选" label="测试单选" />
        <van-action-sheet v-model="show" :actions="actions" @select="onSelect" />
      </div>
    </template>
    <script>
      export default {
        data() {
          return {
            inputval: '',
            show: false,
            actions: [{
              name: '选项一'
            }, {
              name: '选项二'
            }, {
              name: '选项三'
            }],
          };
        },
        methods: {
          onSelect(item) {
            // 默认情况下点击选项时不会自动收起
            // 可以通过 close-on-click-action 属性开启自动收起
            this.show = false;
            this.inputval = item.name
          },
        },
      };
    </script>
    <style>
    </style>
    View Code

    效果:

    用了以上方法,感觉弊端明显,actions只能是单属性数组,onSelect获取的item也不会是对象,看到了Cascader 级联选择,可以不级联使用

    代码:

    <template>
      <div>
        <van-field v-model="fieldValue" is-link readonly label="地区" placeholder="请选择所在地区" @click="show = true" />
        <van-popup v-model="show" round position="bottom">
          <van-cascader v-model="cascaderValue" title="请选择所在地区" :options="options" @close="show = false" @finish="onFinish" />
        </van-popup>
      </div>
    </template>
    
    <script>
      import {
        Toast
      } from 'vant'
    
      export default {
        data() {
          return {
            show: false,
            fieldValue: '',
            cascaderValue: '',
            // 选项列表,children 代表子选项,支持多级嵌套
            options: [{
                text: '浙江省',
                value: '330000',
               // children: [{ text: '杭州市', value: '330100' }],
              },
              {
                text: '江苏省',
                value: '320000',
                //children: [{ text: '杭州市', value: '330100' }],
              },
            ],
          };
        },
        methods: {
          onFinish({selectedOptions}) {
            this.show = false;
            this.fieldValue = selectedOptions.map((option) => option.text).join('/');
          },
        },
      };
    </script>
    
    <style>
    </style>
    View Code

    效果和上图类似,就不截图了

  • 相关阅读:
    汤圆只有汤没有圆了,过了过了
    CommonJS
    What is Socket.IO?
    白话PGP/GPG
    汤圆只有汤没有圆了,过了过了
    npm for nodejs
    Running Daemontools under Ubuntu 8.10
    ubuntu seahouse
    node.js入门
    my blog zen :分享所学,backup一切~
  • 原文地址:https://www.cnblogs.com/yanan7890/p/14455248.html
Copyright © 2020-2023  润新知