element-ui级连选择器如何实现懒加载

ppylox
·9/16/2021·0 阅读
AI 摘要模型根据正文自动生成,仅供参考

Element-UI级联选择器实现懒加载需在props中配置lazyLoad方法,官网仅提供静态数据示例。关键点:在data中调用接口前需先保存this变量(let _this = this),否则无法访问methods方法。lazyLoad接收node和resolve参数,根据node.level判断层级,异步调用接口获取数据后整理成组件所需格式(含value、label、leaf字段),通过resolve返回通知加载完成。props可自定义数组的key和value字段,如value对应dictCode、label对应dictCodeDesc,并设置lazy:true、emitPath:false。

级连选择器实现懒加载主要是需要在props配置lazyLoad方法,官网并没有通过调接口实现懒加载的具体的例子,只有一个写死的数据。

不过需要注意的是在data里面调用接口的时候需要先保存this变量,否则获取不到methods里面的方法会报错,

lazyLoad方法里面主要是将接口获取到的数据整理成定义的参数

props里面可以针对数组的key,value进行自定义。

其他部分可参考官网。




以下代码供参考:

<el-cascader

                  v-model="form.projectType"

                  :options="workTypeOptions"

                  :props="workTypeOptionsProps"

                  @change="handleChange"

                  clearable

                ></el-cascader>

 

 

 data() {

    let _this = this;

    return {

        workTypeOptionsProps: {

\n

        value: "dictCode",

\n

        label: "dictCodeDesc",

\n

        lazy: true,

\n

        emitPath: false,

\n

        lazyLoad(node, resolve) {

\n

          const { level } = node;

\n

          node.value &&

\n

            setTimeout(async () => {

\n

              let nodes = await _this.getProjectTypeOptions(node.value);

\n

              let n = nodes.map((item) => ({

\n

                dictCode: item.project_type,

\n

                dictCodeDesc: item.project_type_name,

\n

                leaf: level < 2,

\n

              }));

\n

              // 通过调用resolve将子节点数据返回,通知组件数据加载完成

\n

              resolve(n);

\n

            }, 1000);

\n

        },

\n

      },

\n

    }

\n

}

    }

}

 

methods: {

    handleChange(node) {},

    async getProjectTypeOptions(workType) {

      let res = await getProjectTypeList({ workType: workType });

      if (res) {

        return res.content || [];

      }

    },

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

} 

相关文章

评论 (0)

暂无评论,来写第一条吧