vue中mintui二级联动选择器

效果如下:
在这里插入图片描述
首先要引入elementui,这里就不多说了,我们直接使用

 <div>
        科室名称
        <input type="text" placeholder="请选择" @click="popupVisible=true" v-model="depts2.name" />
 </div>

这里我们使用两个picker,用popup包裹

	<!-- 选择科室 -->
    <mt-popup v-model="popupVisible" class="popup">
      <div class="picker-toolbar" style="text-align:center;">科室选择</div>
      <mt-picker
        ref="pickerObj"
        :slots="depts"
        @change="onDeptsChange"
        valueKey="deptName"
        style="float:left;width:50%;"
      ></mt-picker>
      <mt-picker
        :slots="depts2"
        valueKey="deptName"
        @change="onDeptsOptionsChange"
        style="float:right;width:50%;"
        v-if="depts2[0].values!=''"
      ></mt-picker>
      <button class="yes" @click="popupVisible=false" >确定</button>
    </mt-popup>

这里是整个popup的样式,用的是sass,可以根据要求修改

.popup {
  width: 80%;
  margin: 0 auto;
  min-height: 17.5rem;

  border-radius: 0.75rem;
  .picker-toolbar {
    padding: 0.5rem 1.5rem;
    height: 1.5rem;
    line-height: 1.5rem;
    border-bottom: 0.05rem solid #f6f9fc;
    color: rgba(45, 141, 247, 1);

    .popup-cancel {
      float: left;
    }
    .popup-confirm {
      float: right;
    }
  }
}

data数据结构

data() {
    return {
      depts: [  //一级选择器
        {
          values: []
        }
      ],
      depts2: [   //二级选择器
        {
          values: []
        }
      ],
    }
 };
 methods(){
     getOption(pid) {
	  //发送请求,返回选择器数据
      this.$api.getDepts({ pid: this.pid }).then(
        data => {
        	//pid是接口返回来的用于标识父级还是子级的字段
          if (pid == 0) {
            this.depts[0].values = data.data || [];
          } else {
            this.depts2[0].values = data.data || [];
          }
        },
        err => {
          err.msg && this.$messagebox.alert(err.msg);
        }
      );
    },
    //选择一级事件
    onDeptsChange(picker, values) {
      if(values!=''){
        this.getDepts(values[0].id);
      }
    },
    //选择二级
    onDeptsOptionsChange(picker, values) {
      this.deptId = values[0].id;
      this.depts2.name = values[0].deptName;
    },
 },
 created() {
    this.getOption(0);
 }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue省市县三级联动选择是一个基于Vue框架开发的组件,主要用于在前端页面实现省市县三级地区选择功能。 在实现这个功能的时候,可以通过调用第三方库或者自己编写代码来实现。首先,需要有一个地区的数据源,可以是从后端接口获取到的数据,也可以是直接存储在前端的静态数据。 在使用Vue框架时,可以通过使用computed属性来动态生成省份的数据,再根据选的省份来生成对应的城市数据,最后根据选的城市来生成对应的县区数据。这样就实现了省市县三级联动选择的效果。 在Vue模板,可以通过v-for指令来遍历省市县数据,然后通过v-model指令绑定选的省市县数据,实现数据的双向绑定。同时,可以通过使用v-on指令来监听省市县选择时的事件,以便在选择变化时更新城市和县区的数据。 除了使用Vue框架的核心功能外,还可以使用第三方组件库或UI框架来美化选择的样式,增加用户体验。 综上所述,Vue省市县三级联动选择是一个基于Vue框架开发的组件,可以实现在前端页面上方便地选择地区的功能。通过动态生成省市县数据,并根据选选择生成对应的下级数据,实现了省市县三级联动。通过Vue框架的特性和指令,实现数据的双向绑定和事件监听,提升了交互效果。同时,可以使用第三方组件库或UI框架美化选择的样式,增加用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值