在vant中使用选择器+弹出实现一个三级联动

  介绍

在vant中使用选择器+弹出实现一个三级联动?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

选择器选择器的数据由列属性控制,列中有几个元素就代表该选择器有多少级,通过改变方法来给对应列赋值。

 & lt; template>
  & lt; div类=癴orm"祝辞
  & lt; van-row类型=癴lex"证明=癱enter"align=癱enter"比;
  & lt; van-col跨度=?”;类=皌ext"祝辞自定义三级联动& lt;/van-col>
  & lt; van-col跨度=?9“比;
  & lt; van-field v模型=皊tudent"占位符=扒胙≡瘛?@click=皊tuShow=true":只读的=皌rue"/比;
  & lt;/van-col>
  & lt;/van-row>
  & lt; !——底部弹出——比;
  & lt; van-popup v模型=皊tuShow"位置=癰ottom":比;
  & lt; van-picker:列=皊tuLoad"@confirm=皊tuConfirm"@change=皊tuChange"@cancel=皊tuShow=false"show-toolbar/比;
  & lt;/van-popup>
  & lt;/div>
  & lt;/template>
  
  & lt; script>
  出口默认{
  名称:“Form",
  数据(){
  返回{
  学生:& # 39;& # 39;
  stuShow:假的,
  stuLoad: [],
  stuColumn1: [],
  stuColumn2: [],
  stuColumn3: []
  };
  },
  创建(){
  this.makeData ();//页面加载时给选择框赋初始值
  },
  方法:{
  makeData(){//模拟数据,生产环境用axios获取数据
  让column1=[{
  & # 39;孩子# 39;:0,
  & # 39;文本# 39;:& # 39;请选择& # 39;
  },{
  & # 39;孩子# 39;:1,
  & # 39;文本# 39;:& # 39;一年级& # 39;
  },{
  & # 39;孩子# 39;:2
  & # 39;文本# 39;:& # 39;二年级& # 39;
  });
  让column2={
  & # 39;1 & # 39;:[{
  & # 39;孩子# 39;:1,
  & # 39;文本# 39;:& # 39;一组& # 39;
  },{
  & # 39;孩子# 39;:2
  & # 39;文本# 39;:& # 39;二组& # 39;
  },{
  & # 39;孩子# 39;:3,
  & # 39;文本# 39;:& # 39;三组& # 39;
  }),
  & # 39;2 & # 39;:[{
  & # 39;孩子# 39;:4
  & # 39;文本# 39;:& # 39;四组& # 39;
  },{
  & # 39;孩子# 39;:5
  & # 39;文本# 39;:& # 39;五组& # 39;
  })
  }
  让column3={
  & # 39;1 & # 39;:[{
  & # 39;孩子# 39;:1,
  & # 39;文本# 39;:& # 39;小明& # 39;
  },{
  & # 39;孩子# 39;:2
  & # 39;文本# 39;:& # 39;小红& # 39;
  },{
  & # 39;孩子# 39;:3,
  & # 39;文本# 39;:& # 39;小刚& # 39;
  }),
  & # 39;2 & # 39;:[{
  & # 39;孩子# 39;:4
  & # 39;文本# 39;:& # 39;艾米# 39;
  },{
  & # 39;孩子# 39;:5
  & # 39;文本# 39;:& # 39;山姆# 39;
  }),
  & # 39;3 & # 39;:[{
  & # 39;孩子# 39;:4
  & # 39;文本# 39;:& # 39;锡安# 39;
  },{
  & # 39;孩子# 39;:5
  & # 39;文本# 39;:& # 39;朱诺# 39;
  }),
  & # 39;4 & # 39;:[{
  & # 39;孩子# 39;:6,
  & # 39;文本# 39;:& # 39;露西# 39;
  },{
  & # 39;孩子# 39;:7,
  & # 39;文本# 39;:& # 39;汤姆# 39;
  }),
  & # 39;5 & # 39;:[{
  & # 39;孩子# 39;:6,
  & # 39;文本# 39;:& # 39;iwan # 39;
  })
  }
  让列=[];
  列=[{
  价值观:column1,
  defaultIndex: 0//默认选中项索引
  },
  {
  价值观:[],
  defaultIndex: 0
  },
  {
  价值观:[],
  defaultIndex: 0
  }
  ];
  这一点。stuColumn2=column2;
  这一点。stuColumn3=column3;
  这一点。stuLoad=列;
  },
  stuConfirm(价值,指数){//下方弹出层点击确认时触发//值为各列选中值//索引为各列选中的索引
  如果(index.indexOf(0)比;1){
  警报(& # 39;请选择& # 39;);
  其他}{
  让内容价值[0]=[& # 39;文本# 39;]+ & # 39;/& # 39;+价值[1][& # 39;文本# 39;]+ & # 39;/& # 39;+价值[2][& # 39;文本# 39;];
  这一点。学生=内容;
  这一点。stuShow=false;
  }
  },
  stuChange(选择器、价值,指数){//选择器改变时触发//选择实例//值为当前选中值//索引为当前列对应的索引,第一列索引为0,第二列索引为1,依次列推
  如果(指数==0){//改变第一列的值
  让我[0]=值(& # 39;孩子# 39;);
  让项目=tuColumn2[我],# 63;这一点。stuColumn2[我]:[];
  如果物品,,项[0][& # 39;文本# 39;]!=& # 39;请选择& # 39;){
  item.unshift ({
  & # 39;孩子# 39;:0,
  & # 39;文本# 39;:& # 39;请选择& # 39;
  })
  }
  选择器。setColumnValues(1项);//给对应的列赋值,第一个参数为列的索引值,第二个参数为列的值
  }else if(指数==1){
  让我=价值[1][& # 39;孩子# 39;];
  让项目=tuColumn3[我],# 63;这一点。stuColumn3[我]:[];
  如果项目。长度!=0,,项[0][& # 39;文本# 39;]!=& # 39;请选择& # 39;){
  item.unshift ({
  & # 39;孩子# 39;:0,
  & # 39;文本# 39;:& # 39;请选择& # 39;
  })
  }
  选择器。setColumnValues(2项);
  }
  }
  }
  };
  & lt;/script>
  
  & lt; scoped>风格;
  。text {
  text-align:正确;
  }
  & lt;/style> 

在vant中使用选择器+弹出实现一个三级联动