uView 实现三级联动
<u-picker
:show="pickerShow"
:columns="cloumns"
keyName="name"
ref="uPicker"
closeOnClickOverlay
@confirm="handleConfirm"
@cancel="pickerShow=false"
@change="changeHandler"
></u-picker>
<script>
import HomeAPI from '@/service/api/my_appeal/post_appeal'
export default {
data(){
return{
pickerShow:'false'
columns: [],
columnData:[],
}
}
methods:{
getData (type) {
let params = {
type: type,
}
HomeAPI.APIworkOrderGetType(params).then((res) => {
if (res.code == 200) {
this.columns = [];
this.columnData = [];
this.columns.push(res.data);
this.columns.push(res.data[0].children);
this.columns.push(res.data[0].children[0].children);
res.data.forEach(item => {
if (item.children.length > 0) {
this.columnData.push(item.children)
}
})
} else {
this.$message.error(res.desc);
}
})
},
changeHandler(e){
const {
columnIndex,
value,
values,
index,
indexs,
picker = this.$refs.uPicker,
} = e;
if (columnIndex === 0) {
picker.setColumnValues(1, this.columns[0][indexs[0]].children);
picker.setColumnValues(2, this.columnData[indexs[0]][indexs[1]].children);
} else if (columnIndex === 1) {
picker.setColumnValues(2, this.columnData[indexs[0]][indexs[1]].children);
}
}
}
}
</script>