<template>
<view >
<picker class="pickerList" mode="multiSelector"
:range="newCategotyDataList"
:value="multiIndex"
range-key="name"
@change="bindPickerChange"
@columnchange="pickerColumnchange">
<!-- <view>{{newCategotyDataList[0][0].name}}--{{newCategotyDataList[1][0]}}--{{newCategotyDataList[0].childList[0].childList[0].name}}</view>-->
<view class="">{{select}}</view>
</picker>
</view>
</template>
<script>
import { getAreaListAll } from '@/api/index'
export default {
data() {
return {
multiIndex:[0,0,0],
newCategotyDataList:[[],[],[]],
categoryArr: {},
select:"请选择地区",
}
},
onLoad:function(e) {
this.getAddressList()
},
methods: {
getAddressList(){
this.$api.getAreaListAll({parentId:'320500'}).then((res) => {
if(res.code===200){
this.categoryArr=res.data
for(let i=0; i<this.categoryArr.length; i++){
// console.log(this.categoryArr[i].name);
this.newCategotyDataList[0].push(this.categoryArr[i])
}
for(let i=0; i<this.categoryArr[0].childList.length; i++){
// console.log(this.categoryArr[0].city[i].name)
this.newCategotyDataList[1].push(this.categoryArr[0].childList[i])
}
for(let i=0; i<this.categoryArr[0].childList[0].childList.length; i++){
// console.log(this.categoryArr[0].city[0].area)
this.newCategotyDataList[2].push(this.categoryArr[0].childList[0].childList[i])
}
console.log(this.newCategotyDataList,this.categoryArr[0].name)
}
})
},
pickerColumnchange(e){
// 第几列滑动
// console.log(e.detail.column);
// 第几列滑动的下标
// console.log(e.detail.value)
// 第一列滑动
if(e.detail.column === 0){
this.multiIndex[0] = e.detail.value
// console.log('第一列滑动');
// this.newCategotyDataList[1] = [];
this.newCategotyDataList[1] = this.categoryArr[this.multiIndex[0]].childList.map((item,index)=>{
console.log( item.name)
return item.name
})
// console.log(this.multiIndex)
if(this.categoryArr[this.multiIndex[0]].childList.length === 1){
this.newCategotyDataList[2] = this.categoryArr[this.multiIndex[0]].childList[0].childList.map((item,index)=>{
// console.log(item)
return item
})
}else{
this.newCategotyDataList[2] = this.categoryArr[this.multiIndex[0]].childList[this.multiIndex[1]].childList.map((item,index)=>{
// console.log(item)
return item
})
}
// 第一列滑动 第二列 和第三列 都变为第一个
this.multiIndex.splice(1, 1, 0)
this.multiIndex.splice(2, 1, 0)
}
// 第二列滑动
if(e.detail.column === 1){
this.multiIndex[1] = e.detail.value
// console.log('第二列滑动');
// console.log(this.multiIndex)
this.newCategotyDataList[2] = this.categoryArr[this.multiIndex[0]].childList[this.multiIndex[1]].childList.map((item,index)=>{
// console.log(item)
return item
})
// 第二列 滑动 第三列 变成第一个
this.multiIndex.splice(2, 1, 0)
}
// 第三列滑动
if(e.detail.column === 2){
this.multiIndex[2] = e.detail.value
// console.log('第三列滑动')
// console.log(this.multiIndex)
}
},
bindPickerChange(e){
this.multiIndex = e.detail.value;
// 数组内的下标
// console.log(this.multiIndex);
// 获取一级类目
console.log(this.newCategotyDataList[0][this.multiIndex[0]])
// 获取二级类目
// console.log(this.newCategotyDataList[1][this.multiIndex[1]])
// 获取三级类目
// console.log(this.newCategotyDataList[2][this.multiIndex[2]])
this.select = `${this.newCategotyDataList[0][this.multiIndex[0]].name+this.newCategotyDataList[1][this.multiIndex[1]].name+this.newCategotyDataList[2][this.multiIndex[2]].name}`;
// this.selectObj=this.newCategotyDataList[2][this.multiIndex[2]];
},
}
}
</script>
<style>
.scroll{
overflow: auto;
}
.item{
height: 50px;
background: pink;
border: 1px solid #ddd;
}
.bottom{
height: 40px;
line-height: 40px;
}
</style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通