使用element中el-cascader级联选择器动态懒加载以及回显 (单选)

本文主要是介绍使用element中el-cascader级联选择器动态懒加载以及回显 (单选),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<template><!-- 新增||修改弹框 --><el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title" :visible.sync="open"width="800px" append-to-body><el-form ref="form" :model="form" label-width="80px"><el-form-item label="地址:" prop="addressId"><el-cascader v-if="open" v-model="form.addressId" :props="props" :options="options":placeholder="addressName" /></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></el-dialog>
</template>
<script>
// 导入接口 (根基实际项目,自定义)
import { lazyList, getUser, updateUser, addUser } from '@/api/manager/user'
var uploadingClick = 0
export default {data() {return {title: '',open: false,options: [],//     options:[  // 级联选择器的数据格式// 		{// 		"ancestors": "0,100", // 上级的deptId以逗号分割形成的字符串// 		"deptName": "测试1",// 		"deptId": 25438,// 		"parentId": 100,// 		"parentName": "测试",// 		"existSub": true  // 	},// 	{// 		"ancestors": "0,100",// 		"deptName": "测试2",// 		"deptId": 25441,// 		"parentId": 100,// 		"parentName": "测试",// 		"existSub": false// 	},//    ],addressName: '请选择',  //当前选中的nameform: {addressId: [], //选中的上下级deptId所组成的数组:比如:  [100, 25438, 25519, 25652, 25604] ,},// 表单校验rules: {addressId: [{required: true,message: '地址不能为空',trigger: 'blur'}],},props: {//是否动态加载子节点,需与 lazyLoad 方法结合使用lazy: true,value: 'deptId',label: 'deptName',children: 'children',//在选中节点改变时,是否返回由该节点所在的各级菜单的值所组成的数组,若设置 false,则只返回该节点的值emitPath: false,//是否严格的遵守父子节点不互相关联checkStrictly: true,//加载动态数据的方法,仅在 lazy 为 true 时有效//function(node, resolve),node为当前点击的节点,resolve为数据加载完成的回调(必须调用)lazyLoad(node, resolve) {const queryParams = {}queryParams.parentId = node.value//根据parentId 查询下级的数据lazyList(queryParams).then(res => {res.data.forEach(item => { // 是否存在下级,是否禁用item.leaf = !item.existSubitem.disabled = false})resolve(res.data)})}},}},methods: {// 表单重置reset() {this.form = {addressId: [],}this.resetForm('form')},/** 新增操作 */handleAdd() {this.reset()this.open = truethis.title = '添加'},/** 修改操作 */handleUpdate(row) {this.reset()const id = row.id// 调用详情的接口getUser(id).then(response => {this.form = response.data// 处理addressId ,用来获取所有上下级deptId组成的数组this.form.addressId = this.dataEchoHandle(response.data)this.open = truethis.title = '修改'})},// Cascader 级联选择器 懒加载  数据回显dataEchoHandle(row) { // // 获取到当前的addressIdlet ancestors = row.addressId // 当前的id,比如:25604if (row.ancestors && row.ancestors != '') { // 格式:'0,100, 25438, 25519, 25652'// 对数据进行回显(获取所有父级的addressId,加上当前的addressId,组成的数组。)ancestors = row.ancestors.split(',')ancestors.shift() //去掉0ancestors = ancestors.map(Number) // 数组的每个元素由string转为number类型ancestors.push(row.addressId) // 将当前的id加入console.log(ancestors, 'ancestors')  // 获取到所有的id组成的数组  [100, 25438, 25519, 25652, 25604] }return ancestors},// 取消按钮cancel() {this.open = falsethis.reset()},/** 提交按钮 */submitForm: function () {if (uploadingClick == 0) {uploadingClick = 1this.$refs['form'].validate(valid => {if (valid) {console.log('this.form', this.form)const params = JSON.parse(JSON.stringify(this.form))// return;if (this.form.id != undefined) {if (params.addressId instanceof Array) {// 数组类型params.addressId = params.addressId[params.addressId.length - 1]}console.log('params修改', params)// return;updateUser(params).then(response => {this.$modal.msgSuccess('修改成功')this.open = false})} else {addUser(params).then(response => {this.$modal.msgSuccess('新增成功')this.open = false})}}})setTimeout(function () {uploadingClick = 0}, 3000)} else {this.$modal.msgError('请勿重复点击')}},}
}
</script>

在这里插入图片描述
在这里插入图片描述

这篇关于使用element中el-cascader级联选择器动态懒加载以及回显 (单选)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/552252

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca