vue基於vant框架一個頁面多次使用picker選擇器


百度了好多都沒有自己想要的,自己搗鼓了老久,效果達到自己的預想,代碼不是很優雅。
<template>
  <div class="record-con">
    <div class="title clear">
      <i class="iconfont icon-icon_arrow_left" />
      <span>個人中心</span>
    </div>

    <div class="mform">
      <h1>人數統計</h1>
      
      
      <form style="border:1px solid red;">
        <div class="team">
          <van-field
            readonly
            clickable
            label="城市"
            :value="value1"
            placeholder="選擇城市"
            @click="mqinAi1"
          />
          <div v-if="myIf1">
            <van-popup
              v-model="showPicker"
              position="bottom"
            >
              <van-picker
                title="請選擇城市"
                show-toolbar
                :columns="columns1"
                @cancel="showPicker = false"
                @confirm="onConfirm1"
              />
            </van-popup>
          </div>
        </div>

        <div class="group-leader flexbox">
          <van-field
            readonly
            clickable
            label="組長"
            :value="value2"
            placeholder="選擇組長"
            @click="mqinAi2"
          />
          <div v-if="myIf2">
            <van-popup v-model="showPicker" position="bottom">
              <van-picker
                title="請選擇組長"
                show-toolbar
                :columns="columns2"
                @cancel="showPicker = false"
                @confirm="onConfirm2"
              />
            </van-popup>
          </div>
        </div>

        <div class="num flexbox">
          <van-field
            readonly
            clickable
            label="組總人數:"
            :value="value3"
            placeholder="選擇組長"
            @click="mqinAi3"
          />
          <div v-if="myIf3">
            <van-popup v-model="showPicker" position="bottom">
              <van-picker

                title="請選擇組長"
                show-toolbar
                :columns="columns3"
                @cancel="showPicker = false"
                @confirm="onConfirm3"
              />
            </van-popup>
          </div>
        </div>

        <div class="num-real flexbox">
          <van-field
            readonly
            clickable
            label="實到人數:"
            :value="value4"
            placeholder="選擇組長"
            @click="mqinAi4"
          />
          <div v-if="myIf4">
            <van-popup v-model="showPicker" position="bottom">
              <van-picker
                title="請選擇組長"
                show-toolbar
                :columns="columns4"
                @cancel="showPicker = false"
                @confirm="onConfirm4"
              />
            </van-popup>
          </div>
        </div>

        <div class="real-name flexbox">
          <van-field
            readonly
            clickable
            label="實到人員名單:"
            :value="value5"
            placeholder="選擇組長"
            @click="mqinAi5"
          />
          <div v-if="myIf5">
            <van-popup v-model="showPicker" position="bottom">
              <van-picker
                title="請選擇組長"
                show-toolbar
                :columns="columns5"
                @cancel="showPicker=false"
                @confirm="onConfirm5"
              />
            </van-popup>
          </div>
        </div>
      </form>

    </div>
  </div>
</template>
 
         
<script>
import Vue from 'vue';
import { Picker } from 'vant';
import { Popup } from 'vant';
Vue.use(Popup);
Vue.use(Picker);
export default {
  name: '',
  components: {},
  props: {},
  data() {
    return {
      myIf1: false,
      myIf2: false,
      myIf3: false,
      myIf4: false,
      myIf5: false,
      value1: '',
      value2: '',
      value3: '',
      value4: '',
      value5: '',

      showPicker: false,

      columns1: ['杭州', '寧波', '溫州', '嘉興', '湖州'],
      columns2: ['組長1', '組長1', '組長1', '組長1', '組長1'],
      columns3: ['組長2', '組長2'],
      columns4: ['組長3', '組長3'],
      columns5: ['組長5', '組長5']
    }
  },
  computed: {},
  created() {},
  mounted() {},
  methods: {
    onConfirm1(e) {
      this.value1 = e
      this.showPicker = false
    },
    onConfirm2(e) {
      this.value2 = e
      this.showPicker = false
    },
    onConfirm3(e) {
      this.value3 = e
      this.showPicker = false
    },
    onConfirm4(e) {
      this.value4 = e
      this.showPicker = false
    },
    onConfirm5(e) {
      this.value5 = e
      this.showPicker = false
    },
    mqinAi1() {
      this.myIf1 = true
      this.myIf2 = false
      this.myIf3 = false
      this.myIf4 = false
      this.myIf5 = false
      this.showPicker = true
    },
    mqinAi2() {
      this.myIf1 = false
      this.myIf2 = true
      this.myIf3 = false
      this.myIf4 = false
      this.myIf5 = false
      this.showPicker = true
    },
    mqinAi3() {
      this.myIf1 = false
      this.myIf2 = false
      this.myIf3 = true
      this.myIf4 = false
      this.myIf5 = false
      this.showPicker = true
    },
    mqinAi4() {
      this.myIf1 = false
      this.myIf2 = false
      this.myIf3 = false
      this.myIf4 = true
      this.myIf5 = false

      this.showPicker = true
    },
    
    mqinAi5() {
      this.myIf1 = false
      this.myIf2 = false
      this.myIf3 = false
      this.myIf4 = false
      this.myIf5 = true
      this.showPicker = true
    }
  }
}
</script>
 
         

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM