当前位置: 首页 > news >正文

【sgLazyCascader】自定义组件:基于el-cascader的懒加载级联菜单,支持异步加载子级菜单

sgLazyCascader源码

<template><div :class="$options.name"><el-cascader :props="props" v-model="model" :placeholder="placeholder || '请选择'" :options="options"></el-cascader></div>
</template>
<script>
export default {name: 'sgLazyCascader',data() {return {model: null,mainKey: 'id',//默认主键defaultRootId: 'root',//默认根节点ID就是rootform: {},props: {lazy: true,expandTrigger: 'hover',multiple: false,lazyLoad: (node, resolve) => {this.loadNodeData(node.level === 0 ? { [this.mainKey]: this.defaultRootId } : node.data, d => resolve(d));}}}},props: ["value","options",//回显的时候使用"data","placeholder",],watch: {value: { handler(d) { this.model = d; }, deep: true, immediate: true, },model(d) { this.$emit('input', d); },data: {handler(d) {d.nodeKey && (this.mainKey = d.nodeKey);//主键d.rootId && (this.defaultRootId = d.rootId);//根节点IDd.value && (this.props.value = d.value);//指定选项的值为选项对象的某个属性值d.label && (this.props.label = d.label);//指定选项标签为选项对象的某个属性值d.children && (this.props.children = d.children);//指定选项的子选项为选项对象的某个属性值	d.expandTrigger && (this.props.expandTrigger = d.expandTrigger);//次级菜单的展开方式click / hoverd.hasOwnProperty('multiple') && (this.props.multiple = d.multiple);//是否多选	d.hasOwnProperty('lazy') && (this.props.lazy = d.lazy);//是否动态加载子节点,需与 lazyLoad 方法结合使用	}, deep: true, immediate: true,},},methods: {// 加载节点数据(通过接口向后台获取数据)loadNodeData(data, cb) {let resolve = d => { cb && cb(d) };this.$emit(`loadNode`, data, resolve);},},
};
</script> 

用例

<template><div :class="$options.name"><sgLazyCascader v-model="value" :data="{nodeKey: `ID`,//主键value: `ID`,label: 'MC',}" :options="options" placeholder="请选择" @loadNode="loadNode" /></div>
</template><script>
import sgLazyCascader from "@/vue/components/admin/sgLazyCascader";
export default {components: {sgLazyCascader,},data() {return {value: [],options: [],}},methods: {// 加载节点数据loadNode(data, resolve) { this.$d.apiname({ data: { PID: data.ID }, doing: { s: d => resolve(d) } }); },}
};
</script>

http://www.lryc.cn/news/158848.html

相关文章:

  • 2023高教社杯数学建模E题思路模型 - 黄河水沙监测数据分析
  • 一、Linux下常用的压缩格式
  • MySQL 查询 - 排除某些字段的SQL查询,提升查询性能
  • 国产信创服务器如何进行安全可靠的文件传输?
  • ARTS第五周:S - 数据编织 Data fabric
  • 基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平教程
  • Spring Boot 介绍
  • mysql基于AES_ENCRYPTAES_DECRYPT实现密码的加密与解密
  • 怎么把pdf转换成jpg图片?
  • 计算机脚本的概念,如何编写、使用脚本 (Script)?
  • c语言 5.0
  • 如何配置远程访问以在外部网络中使用公司内部的OA办公系统——“cpolar内网穿透”
  • 【AI】机器学习——线性模型(线性回归)
  • 智能小车之跟随小车、避障小车原理和代码
  • 行业追踪,2023-09-07
  • Qt creator中项目的构建配置和运行设置
  • 蓝桥杯打卡Day3
  • Linux系统编程--IO
  • 亚马逊云科技通过生成式AI,帮助清华RIOS加速计算和分析的处理效率
  • 全志T113-S3入门资料汇总(避坑指南)一
  • 3dMax全球学习资源、资源文件和教程 !
  • API接口是什么?有哪些免费的API接口?
  • USB Server应用于汇丰晋信基金
  • [BSidesCF 2019]Kookie 1 , cookie伪造
  • 如何查看MySQL的安装位置
  • ui设计岗位招聘要求有哪些? 优漫动游
  • Swift报错:“‘nil‘ is incompatible with return type ‘User‘”
  • LabVIEW利用局部放电分析高压电气设备状态诊断
  • TCP/IP UDP广播无法发送或接收
  • 清理Maven仓库中下载失败的文件