原生html中使用vant组件的三级联动

原生html中使用有赞的vant组件库

整体dom元素以及事件的绑定

<!-- vant组件库所需的样式文件 -->
<link rel="stylesheet" href="./Public/h5newcss/util.css">
<div class="ad-group" id="myvue">
                <label><em class="required">*</em>所在地区</label>
                <div class="region">
                  <div class="van-field__body" @click="showProp">
                    <input type="text" name="data[pro]" readonly="readonly" class="van-field__control" :value="city" id="proList">
                    <div class="van-field__right-icon">
                      <i class="van-icon van-icon-arrow"></i>
                    </div>
                  </div>
                </div>
                <van-popup v-model="show" position="bottom">
                  <van-area
                      :area-list="areaList"
                      :columns-placeholder="['请选择', '请选择', '请选择']"
                      @cancel="cancelFn"
                      @confirm="confirmFn"
                  />
              </van-popup>
            </div>

js部分

 <!-- vue语法js文件_有赞的UI组件库js_省市区三级联动js -->
  <script src="./Public/h5newjs/vue.min.js"></script>
  <script src="./Public/h5newjs/vant.min.js"></script>
  <script src="./Public/h5newjs/area.js"></script>
  <script>
  	//这里定义三个全局变量  因为整体不是全是vue开发的,这里主要作用是提交表单进行校验而用
	    var SelectProvinceName, SelectCityName, SelectCountyName;
	    new Vue({
	      el: '#myvue',
	      data: {
	        show: false,
	        colNum: "3", //省市区显示列数,3-省市区,2-省市,1-省
	        city: "选择省 / 市 / 区",
	        areaList: are  //省市区列表 必须为are
	      },
	      methods:{
	        // 显示弹出层
	        showProp() {
	          this.show = true
	        },
	        // 确认选取省市区
	        confirmFn(are) {
	          that = this
	          let arr = are
	          //省份未选取
	          if (arr[0].name == "" || arr[1].name == "" || arr[2].name == "") {
	            $.Util.Alert('请选择地区');
	          } else {
	            SelectProvinceName = arr[0].name;  //省
	            SelectCityName = arr[1].name;  //市
	            SelectCountyName = arr[2].name;  //区
	
	            that.$emit("ProCityCountyVal", [
	              SelectProvinceName,     //选择的省
	              SelectCityName,         //选择的市
	              SelectCountyName        //选择的区
	            ]);
	            that.city = SelectProvinceName+'-'+SelectCityName+'-'+SelectCountyName;
	            this.show = false
	          }
	        },
	        //点击取消 隐藏弹出层
	        cancelFn() {
	          this.show = false
	        }
	      }
	    });
  </script>

传送门:https://vant-contrib.gitee.io/vant/#/zh-CN/col

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值