c_SelectionBaseDropDown.vue 3.5 KB
<template>
  <van-dropdown-menu active-color="#333">
    <van-dropdown-item v-model="destination" :title="destinationTitle" :options="destinationOption" @change="destinationChange" />
    <van-dropdown-item v-if="destination2Option.length>0" v-model="destination2" :title="destination2Title" :options="destination2Option" @change="destination2Change" />
  </van-dropdown-menu>
</template>
<script>
export default {
  data () {
    return {
      destination: 0,
      destination2: 0,
      destinationTitle: '所在地(市)',
      destination2Title: '所在地(区)',
      // 所在地
      destinationOption: [],
      destination2Option: [],
    }
  },
  mounted () {
    this.getDestination()// 所在地(市)
  },
  methods: {
    // 获取地区(市)
    getDestination () {
      this.yxAxios.get(`${this.yanxueUrl}/api/Manage/GetAllArea?province=33`).then((res) => {
        if (res.data.status == 1) {
          let data = res.data.data;
          let destinationOption = [{ text: '不限', label: '', value: 0, id: '' }]
          this.destinationOption = destinationOption.concat(data);
          console.log('地区(市):', data)
        } else {
          this.$message.warning(res.data.message || res.data.result);
        }
      })
    },
    // 获取地区(区)
    getDestination2 (value) {
      this.yxAxios.get(`${this.yanxueUrl}/api/Manage/GetAllArea?city=${value}`).then((res) => {
        if (res.data.status == 1) {
          let data = res.data.data;
          let destination2Option = [{ text: '不限', label: '', value: 0, id: '' }]
          this.destination2Option = destination2Option.concat(data);
          console.log('地区(区):', data)
        } else {
          this.$message.warning(res.data.message || res.data.result);
        }
      })
    },

    // 选择市
    destinationChange (value) {
      if (value == 0) {
        this.destinationTitle = '所在地(市)'
        this.destination2Option = []
        this.destination2Title = '所在地(区)'
      } else {
        for (let i in this.destinationOption) {
          if (this.destinationOption[i].value == value) {
            this.destinationTitle = this.destinationOption[i].text
            break;
          }
        }
        this.getDestination2(value)
      }
      this.dropdownChange()
    },
    // 选择区
    destination2Change (value) {
      if (value == 0) {
        this.destination2Title = '所在地(区)'
      } else {
        for (let i in this.destination2Option) {
          if (this.destination2Option[i].value == value) {
            this.destination2Title = this.destination2Option[i].text
            break;
          }
        }
      }
      this.dropdownChange()
    },

    dropdownChange () {
      let destination = '';
      for (let i in this.destinationOption) {
        if (this.destinationOption[i].value == this.destination) {
          destination = this.destinationOption[i].label;
          break;
        }
      }
      let destination2 = '';
      for (let i in this.destination2Option) {
        if (this.destination2Option[i].value == this.destination2) {
          destination2 = this.destination2Option[i].label;
          break;
        }
      }
      this.$emit("dropdownChange", {
        destination: destination,
        destination2: destination2,
      })
    }
  }
}
</script>
<style lang="scss">
.van-dropdown-item__content {
  max-height: 100%;
}
.destionation_box {
  padding: 10px 0;
}
.destination-van-button {
  float: right;
  margin-right: 20px;
  margin-bottom: 20px;
}

</style>