当地区数据比较多时,全部获取数据速度太慢,体验不太好,改为懒加载,一级一级选择地区就能很好避免速度慢的问题。首次加载第一级数据,给出所需要的参数,因为首次加载 node.value 没有值,据此判断是不是第一级数据。当点击最后一级的时候 label 后面不会转圈圈,并把相关值赋值到选择器上。编辑弹窗展示的时候,有时候并不能正确回显,取消展示或者改变 key 值。依次类推,拿到全部层级的 code 和 name 传给后端接收使用。获取倒数第二级的数据的 name。获取倒数第三级的数据的 name。
上代码
<el-cascader
v-if="showCascader"
class="form-item-cascader"
:key="resetCascader"
ref="myCascader"
v-model="ruleForm.area"
placeholder="请选择地区"
:props="optionProps"
clearable
@change="handleChange"
></el-cascader>
optionProps: {
value: 'code',
label: 'name',
children: 'areaList',
emitPath: true,
lazy: true,
lazyLoad: (node, resolve)=> {
const { level, value } = node; // 获取当前node对象