【若依前后端分离】通过输入用户编号自动带出部门名称(部门树)

一、部门树

使用 <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>

<el-col :span="12"><el-form-item label="归属部门" prop="deptId"><treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/></el-form-item>
</el-col>

二、用户编号的input中添加失焦事件和回车事件

失焦事件:@blur="userNameChange"

回车事件:@keyup.enter.native="userNameChange"

注意此处的disabled="show"后面会提到

 <el-col :span="12"><el-form-item v-if="form.userId == undefined" label="胸牌号" prop="userName"><el-input v-model="form.userName"placeholder="请输入用户编号":disabled="show"maxlength="30"@keyup.enter.native="userNameChange"@blur="userNameChange"/></el-form-item></el-col>

:disabled="show" 的应用是为了控制 el-input 输入框的禁用状态。这里的 show 是一个布尔类型的变量,当它的值为 true 时,输入框将被禁用,用户无法在其中输入任何内容;反之,当 show 为 false 时,输入框可以正常使用。

在发起请求前:当用户按下回车键或失去焦点触发 userNameChange 方法时,首先设置 this.show = true;。这会导致输入框立刻被禁用,可能的目的是为了防止用户在此期间重复提交请求或修改输入,同时可能伴随着显示加载指示器。

请求完成后:无论API调用成功还是失败,最终都会执行 this.show = false;,重新启用输入框,允许用户继续输入或进行下一步操作。

这样的设计有助于提升用户体验,通过暂时禁用输入框来避免用户在数据加载过程中的误操作,并及时恢复功能,确保界面的交互流畅性。

三、在部门树中,根据已知部门名称查找部门id事件

调用:

const deptId = this.getDeptIdByName(this.deptName)

this.form.deptId = deptId;

getDeptIdByName(name) {/*** 递归函数,根据部门名称查找部门ID* @param {Array} options 部门选项数组* @param {String} targetName 要查找的部门名称* @returns {Number|undefined} 找到的部门ID,未找到则返回undefined*/function findDeptId(options, targetName) {for (const dept of options) {if (dept.label === targetName) {return dept.id;}if (dept.children && dept.children.length > 0) {const result = findDeptId(dept.children, targetName);if (result !== undefined) {return result;}}}return undefined;}// 调用递归函数并返回结果return findDeptId(this.deptOptions, name);
},

四、失焦和回车事件问题

遇到问题:回车后,调用接口信息不显示,再随意输入数据才显示

原因:异步处理不当导致的

因为失焦事件和回车事件中需要调用接口,接口数据还未返回就将值赋给各个控件,所以导致问题发生。

问题解决:添加this.show

/*** 新增用户时,胸牌号回车事件*/
userNameChange() {console.log("---------------失焦事件---------------------")if(this.form.userName){this.show = true;getUserByHR(this.form.userName).then(response => {this.show = false;if (response.code === 200) {if (response.data.code === 200) {//姓名、手机号this.form.nickName = response.data.data.xm;this.form.phonenumber = response.data.data.sjh;//性别if (response.data.data.xb === "男") {this.form.sex = 0;} else {this.form.sex = 1;}//默认普通员工this.form.postIds = [4];//默认普通角色this.form.roleIds = [2];this.form.status = 0;//归属部门// 通过部门编号获取部门id// this.form.deptId=[111];const deptId = this.getDeptIdByName(response.data.data.dept)this.form.deptId = deptId;} else {this.$message.error("获取信息失败");}} else {this.$message.error("连接错误");}console.log("接口信息", response);}).catch(err=>{this.show = false;})}},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频开发—使用FFmpeg从纯H264码流中提取图片 C语言实现

文章目录 1.H264码流文件解码流程关键流程详细解码流程详细步骤解析 2.JPEG编码流程详细编码流程详细步骤解析 3.完整示例代码4.效果展示 从纯H.264码流中提取图片的过程包括解码和JPEG编码两个主要步骤&#xff0c;以下是详细阐述 1.H264码流文件解码流程 关键流程 查找编解…

敏捷开发笔记(第10章节)--Liskov原则(LSP)

目录 1&#xff1a;PDF上传链接 10.1 Liskov替换原则&#xff08;LSP&#xff09; 10.2 一个违反LSP的简单例子 10.6 启发式规则和习惯用法 10.7 结论 1&#xff1a;PDF上传链接 【免费】敏捷软件开发(原则模式与实践)资源-CSDN文库 OCP背后的主要机制是抽象(abstraction…

group 与查询字段

需求 每周周一&#xff0c;统计菜单在过去一周&#xff0c;点击次数&#xff0c;和点击人数&#xff08;同一个人访问多次按一次计算&#xff09; 表及数据 日志表 CREATE TABLE t_data_log ( id varchar(50) NOT NULL COMMENT 主键id, operation_object varchar(500) DE…

【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(下)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 ✔️ 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事…

我的世界1.21多种服务端开服教程,原版/Forge/Fabric/Paper/Mohist...,Minecraft开服教程

Minecraft&#xff08;MC&#xff09;1.21版多种服务端开服教程&#xff0c;我的世界1.21服务器搭建教程&#xff0c;MC原版/Forge/Fabric/Paper/Mohist服务端搭建教程&#xff0c;我的世界MOD/插件服开服教程。 本教程使用 Linux系统MCSManager 面板来搭建Minecraft服务器。 …

人工智能行业应用-垃圾识别一

垃圾识别应用主要体现在AI图像垃圾识别技术上&#xff0c;这是一种基于人工智能和计算机视觉技术的图像处理技术&#xff0c;广泛应用于各个领域以提高垃圾处理的效率和准确性。 1、垃圾识别效果图 2 垃圾识别任务分析 综合利用Python语言、Qt开发模块&#xff0c;OpenCV开发模…

数据结构(Java):单链表面试OJ题

1、题一&#xff1a;获取链表倒数第k个节点 . - 力扣&#xff08;LeetCode&#xff09; 1.1 思路解析 此题我们使用双指针法求解。 首先&#xff0c;我们要知道&#xff0c;倒数的第k个节点&#xff0c;距离倒数第一个节点还需要移动k-1次。 1.那么我们可以定义出两个指针&a…

SQL去重的四种方法

去重是指&#xff1a;查询的时候, 不显示重复&#xff0c;并不是删除表中的重复项 数据表&#xff1a; 方法1&#xff1a;distinct去重 作用&#xff1a;只能一列去重&#xff0c;当distinct后跟大于1个参数时&#xff0c;他们之间的关系是&&(逻辑与)关系&#xff0c;…

00 Debian字符界面如何支持中文

作者&#xff1a;网络傅老师 特别提示&#xff1a;未经作者允许&#xff0c;不得转载任何内容。违者必究&#xff01; Debian字符界面如何支持中文 《傅老师Debian知识库系列之00》——原创 前言 傅老师Debian知识库特点&#xff1a; 1、拆解Debian实用技能&#xff1b; 2、…

ArcGIS获取21天免费教程,不用自己的邮箱

因为迟迟等不到3.1学习版本&#xff0c;但又很眼馋3.1的功能。 在群友的提醒下&#xff0c;官网免费注册21天试用&#xff0c;注册一次可以用21天&#xff0c;基本全部功能都可以使用。 &#xff08;也有群里的人用PayPal支付&#xff0c;然后设置离线许可&#xff0c;官网退…

Sentinel 学习笔记

Sentinel 学习笔记 作者&#xff1a;王珂 邮箱&#xff1a;49186456qq.com 文章目录 Sentinel 学习笔记[TOC] 前言一、基础概念二、Sentinel控制台2.1 安装控制台2.2 簇点链路2.3 请求限流2.4 线程隔离2.5 服务降级2.6 服务熔断 三、Sentinel客户端3.1 原始Jar包客户端3.2 Sp…

216.Mit6.S081-实验四-Traps

本实验探索如何使用陷阱实现系统调用。您将首先使用栈做一个热身练习&#xff0c;然后实现一个用户级陷阱处理的示例。 开始编码之前&#xff0c;请阅读xv6手册的第4章和相关源文件&#xff1a; kernel/trampoline.S&#xff1a;涉及从用户空间到内核空间再到内核空间的转换的…

【多线程】单例模式

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 单例模式的初识2. 单例模式的含义3. 单例模式实现的两种方式3.1 饿汉模式3.2 懒汉模式3.2.1 懒汉模式(单线…

Redis的缓存雪崩,击穿,穿透的介绍

1.缓存雪崩 为保证缓存中的数据与数据库的数据一致,会给Redis里的数据设置一个过期时间,当缓存数据过期后,用户访问的数据如果不在缓存里,业务系统需要重新生成新的缓存,因为就会访问数据库,并将数据更新到Redis里,这样后续请求就可以直接命中缓存. 当大量缓存在同一时间过期或…

Nginx和Tomcat实现负载均衡群集部署应用

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作时间&…

减少CMOS模拟开关导通电阻引起的失真

1 简介 许多数据采集系统的在多通道间选择时需要使用模拟开关&#xff0c;相比同类的机械开关&#xff0c;半导体开关锁表现出的工作特性是迥然不同的。如&#xff1a;处在闭合位置的CMOS开关的电阻&#xff08;导通电阻 “Ron”&#xff09;会因输入电压的不同而改变。该特性通…

IMU的加速度补偿、祛除向心力

目录 1. 简介2. 仅有XY偏移的修正过程3. 3D修正过程 1. 简介 一般&#xff0c;我们期望用IMU测量某个Target坐标系的加速度、角速度信息&#xff0c;然而IMU的坐标系与Target 坐标系一般存在位姿关系&#xff0c;此时IMU测量的加速度不能直接代表Target左坐标系的加速度。比如…

python库(10):SpaCy库实现NLP处理

1 SpaCy简介 自然语言处理&#xff08;NLP&#xff09;是人工智能领域中一个重要的分支。它旨在使计算机能够理解、解释和生成人类语言。Python中的SpaCy库提供了丰富的功能和工具&#xff0c;SpaCy是一个开源的软件库&#xff0c;用于处理和操作自然语言文本&#xff0c;可以…

BM42:混合搜索的新基准 - Qdrant

在过去的 40 年里&#xff0c;BM25 一直是搜索引擎的标准。它是一种简单但功能强大的算法&#xff0c;已被许多搜索引擎使用&#xff0c;包括 Google、Bing 和 Yahoo。 虽然看起来向量搜索的出现会削弱其影响力&#xff0c;但效果并不明显。目前最先进的检索方法试图将 BM25 与…

python库(11):Box库简化字典和对象之间的转换

1Box库简介 Box是一个Python库&#xff0c;它提供了一种将数据封装在字典和列表中的方式&#xff0c;同时提供了一些额外的功能&#xff0c;比如数据验证、默认值设置等。这使得Box库非常适合用于配置管理、数据传输对象&#xff08;DTO&#xff09;的创建&#xff0c;以及任何…