<el-cascader ref="myCascader" v-model="addClockperson.organId" :options="defaultOptions" :props="props" :show-all-levels="false" @change="handleChange" placeholder="请选择机构" @active-item-change="handleItemChange" ></el-cascader>
请求的参数
addressParams: {
divCode: '101',
level: '0'
}
//请求8级机构 getorganizationData() { getAllOrganTree(this.addressParams).then(res => { if (res.code === 0) { this.defaultOptions = this.handleData(res.data) } }) }, //级联选中的val handleChange(val) { let code = val //需请求数据的上级地址的code值 this.addpersoninfoall.level = this.$refs['myCascader'].getCheckedNodes()[0].data.divLevel let level = this.$refs['myCascader'].getCheckedNodes()[0].data.divLevel //需请求第几级 this.defaultOptions = this.handleData(this.defaultOptions, code, level) }, handleData(defaultOptions, val, level) { //console.log(defaultOptions, val, level) for (let i = 0; i < defaultOptions.length; i++) { if (!defaultOptions[i].children) { this.$set(defaultOptions[i], 'children', []) } if (defaultOptions[i].divCode === val) { //如果两者相等,就请求 getAllOrganTree({ level: level, divCode: val }) .then(res => { if (res.data.length && res.code === 0) { defaultOptions[i].children = res.data defaultOptions[i].children.forEach(ele => { this.$set(ele, 'children', []) }) } else { defaultOptions[i].children = [] } }) .catch(err => {}) } else { if (defaultOptions[i].children.length) { this.handleData(defaultOptions[i].children, val, level) } } } return defaultOptions }