前端开发中遇到的小bug--解决方案

news/2024/5/19 14:58:01/文章来源:https://blog.csdn.net/XZZXBC/article/details/130961583

1.在 searchBox 搜索栏中,用到了多级下拉框的筛选条件,样式如下:

 这样看起来是没什么问题的,但当我选择时,在框中显示的内容和筛选条件的内容就出错了:

这里其实是选择了 采矿业 -- 石油和天然气开采业 ,但显示框中是 林业,筛选条件的内容也有问题:

这里没有显示最后一级的 选项,即  石油和天然气开采业

问题就在这里,value 值的设置: 

修改的mock数据如下,这样就可以正常显示了:

内容效果: 

 

这里贴一部分代码: 

industryTypeList: [{ value: 101, label: '农、林、牧、渔业',children: [{ value: 10101, label: '农业' },{ value: 10102, label: '林业' },{ value: 10103, label: '畜牧业' },{ value: 10104, label: '渔业' },{ value: 10105, label: '农、林、牧、渔服务业' }]},{ value: 102, label: '采矿业',children: [{ value: 10201, label: '煤炭开采和洗选业' },{ value: 10202, label: '石油和天然气开采业' },{ value: 10203, label: '黑色金属矿采选业' },{ value: 10204, label: '有色金属矿采选业' },{ value: 10205, label: '非金属矿采选业' },{ value: 10206, label: '开采辅助活动' },{ value: 10207, label: '其他采矿业' }]},{ value: 103, label: '制造业',children: [{ value: 10301, label: '农副食品加工业' },{ value: 10302, label: '食品制造业' },{ value: 10303, label: '酒、饮料和精制茶制造业' },{ value: 10304, label: '烟草制品业' },{ value: 10305, label: '纺织业' },{ value: 10306, label: '纺织服装、服饰业' },{ value: 10307, label: '皮革、毛皮、羽毛及其制品和制鞋业' },{ value: 10308, label: '木材加工和木、竹、藤、棕、草制品业' },{ value: 10309, label: '家具制造业' },{ value: 10310, label: '造纸和纸制品业' },{ value: 10311, label: '印刷和记录媒介复制业' },{ value: 10312, label: '文教、工美、体育和娱乐用品制造业' },{ value: 10313, label: '石油加工、炼焦和核燃料加工业' },{ value: 10314, label: '化学原料和化学制品制造业' },{ value: 10315, label: '医药制造业' },{ value: 10316, label: '化学纤维制造业' },{ value: 10317, label: '橡胶和塑料制品业' },{ value: 10318, label: '非金属矿物制品业' },{ value: 10319, label: '黑色金属冶炼和压延加工业' },{ value: 10320, label: '有色金属冶炼和压延加工业' },{ value: 10321, label: '金属制品业' },{ value: 10322, label: '通用设备制造业' },{ value: 10323, label: '专用设备制造业' },{ value: 10324, label: '汽车制造业' },{ value: 10325, label: '铁路、船舶、航空航天和其他运输设备制造业' },{ value: 10326, label: '电气机械和器材制造业' },{ value: 10327, label: '计算机、通信和其他电子设备制造业' },{ value: 10328, label: '仪器仪表制造业' },{ value: 10329, label: '其他制造业' },{ value: 10330, label: '废弃资源综合利用业' },{ value: 10331, label: '金属制品、机械和设备修理业' }]},{ value: 104, label: '电力、热力、燃气及水生产和供应业' },{ value: 105, label: '建筑业' },{ value: 106, label: '批发和零售业' },{ value: 107, label: '交通运输、仓储和邮政业' },{ value: 108, label: '住宿和餐饮业' },{ value: 109, label: '信息传输、软件和信息技术服务业' },{ value: 110, label: '金融业' },{ value: 111, label: '房地产业' },{ value: 112, label: '租赁和商务服务业' },{ value: 113, label: '科学研究和技术服务业' },{ value: 114, label: '水利、环境和公共设施管理业' },{ value: 115, label: '居民服务、修理和其他服务业' },{ value: 116, label: '教育' },{ value: 117, label: '卫生和社会工作' },{ value: 118, label: '文化、体育和娱乐业' },{ value: 119, label: '公共管理、社会保障和社会组织' },{ value: 120, label: '国际组织' },{ value: 121, label: '其他' }
]

 2.在制作表单页面时,用到了 单选按钮,需要设置 trigger 属性,先看看效果:

选择性别,并且是必选项,现在的代码是,因为调用 elementui组件库时,默认是绑定了 radio 值,但就在这个地方出现了问题:

trigger 属性在这里设置为 blur 或 change 均可,选择之后,不会提示未选择选项的错误信息,但点击提交表单时,会出现错误提示框,效果是这样:

选择了“女”,依然提示“请选择性别”,解决如下:

扔掉 radio 项,设置为当前绑定的数据项:s012,即可解决

<el-col :span="12"><el-form-item label="性别" prop="s012" ref="radioGroup"><el-radio v-model="formData.s012" label="1">男</el-radio><el-radio v-model="formData.s012" label="2">女</el-radio></el-form-item>
</el-col>
s012: [{required: true,message: '请选择性别',trigger: 'change'
}]

3.在做 el-table 组件时,每列数据的宽度不同,并且用户使用的电脑屏幕大小不同,为了兼容并且提高用户体验,可以设置 mid-width 属性以及 show-overflow-tooltip(默认一行展示,超过显示省略号)。如果希望用户能够查看完整的内容,可以添加一个 ToolTip 组件在鼠标 hover 该单元格时浮现出来以显示全部内容。

<el-table-column prop="s003" :label="columnControl[2].label" mid-width="120" show-overflow-tooltip><template slot-scope="scope">{{ scope.row.s003 }}</template>
</el-table-column>

4.组件间通讯,这里是我用到的父子组件间的通讯

在父子组件通信方面,可以采用以下几种常用的方法:

  1. Props 传递:父组件通过 props 将数据传递给子组件。子组件通过 props 接收并使用这些数据。父组件可以在需要的时候更新传递给子组件的 props 数据,从而实现通信和数据更新。

  2. 自定义事件:父组件可以通过自定义事件的方式向子组件发送消息或触发特定操作。子组件可以监听这些事件,并在事件被触发时执行相应的操作。

  3. 使用 ref:父组件可以通过 ref 引用子组件的实例,从而直接访问子组件的属性和方法。这样可以实现父组件调用子组件的特定方法,或读取子组件的状态。

  4. 使用 Vuex(Vue.js 的状态管理库):如果你在 Vue.js 中使用 Vuex,则可以在父组件和子组件之间共享全局状态。父组件可以使用 Vuex 存储和更新数据,子组件可以通过读取 Vuex 中的状态来获取最新的数据。

我个人认为较为简单是在父组件中定义要传的值,然后用props在子组件中组件,之后通过 this.$emit('xxxx', yyyy) 的方式,下面是代码示范:

这是我在父组件中用到的子组件 ShowApply,这里记得使用前引用文件

<ShowApply :visible.sync="showApplyDialogShow" />

这里的 :visible.sync 就是我要传的值,用来控制子组件是否显示

props: {visible: Boolean
}

在子组件中利用 props 进行注册,然后在你绑定的点击事件或其他自定义事件的方法中使用如下代码中的 this.$emit('update:visible', false) :【里面具体要绑定的事件可以自行修改】,这是父向子传数据

methods: {// 提交申请onSubmit() {console.log('点击提交申请')this.dialogShow = true// 触发关闭事件,更新 visible 状态this.$emit('update:visible', false)}
}

再举一例,这里利用自定义事件或者 ref 都可以:

我要实现的需求是 我在子组件中上传一些文件,形成一个文件列表,在父组件中可以渲染出来

即将红色框中的列表渲染到触发这个子组件的父组件中,即这样的效果:

 在父组件中渲染子组件时,绑定ref 或者 自定义事件

<UploadDocument ref="uploadNew" @file-uploaded="handleFileUploaded" />

在子组件中使用 ref 或者 自定义事件,将我的文件列表渲染过去给父组件,这是子向父传数据

// 传递数据
toEmitFile() {// 将附件列表传递给父组件this.$emit('file-uploaded', this.attachmentList)this.attachmentList = []
}

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

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

相关文章

数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

&#x1f31f;博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;离散数学考前复习&#xff08;知识点题&#xff09; &#x1f353;专栏&#xff1a;概率论期末速成&#xff08;一套卷&#xff09; &#x1f433;专栏&#xff1a;数字电路考前复习 &#x1f99a;专栏&am…

自动化测试如何区分用例集合?你一定要知道

目录 前言 业务量和复杂度增长现状是什么&#xff1f; 如何区分自动化测试的用例集合&#xff1f; 区分用例集合的过程要注意什么&#xff1f; 总结&#xff1a; 前言 有同学在后台问到&#xff1a;业务比较复杂&#xff0c;有很多串行并行甚至组合的业务场景&#xff0c;执…

Opencv项目实战:23 智能计数和表单信息

目录 0、项目介绍 1、效果展示 2、项目搭建 3、项目代码展示与部分讲解 拍照脚本data_collection.py 图片检测Picdetect.py 摄像头检测Videodetect.py 主函数CountMain.py 自定义模块tally.py 4、项目资源 5、项目总结 0、项目介绍 有一段时间没有更新专栏了&#…

软件测试入门篇

软件测试含义 在规定条件下对程序进行操作&#xff0c;发现软件错误&#xff0c;衡量软件质量&#xff0c;对其是否能满足设计要求进行评估的过程 开发不做测试原因&#xff1a;测试力度&#xff0c;思维方式&#xff0c;关注度 计算机定义 一种可以自动高效进行技术操作的…

vue引入jszip下载多个图片并压缩下载

vue引入jszip下载多个图片并压缩下载 jszip官网地址 先进行jszip下载 npm install jszip然后废话不多说直接上代码 <template><div><button click"downloadImages">下载图片</button></div> </template><script> impo…

Prompt的技巧持续总结

Prompt 有很多网站已经收录了&#xff0c;比如&#xff1a;aimappro 有些直接抄上述网站的作业即可&#xff0c;不过也来看看&#xff0c; 有一些日常提问大概的咒语该怎么写。 1 三种微调下的提示写法 chatgpt时代的创新&#xff1a;LLM的应用模式比较 实际案例说明AI时代大…

《Stable Diffusion WebUI折腾实录》在Windows完成安装, 从社区下载热门模型,批量生成小姐姐图片

环境 操作系统: Windows11 显卡: RTX2060 6GB 显存 安装Python 下载 Python3.10.6 https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe安装 注意勾选 Add Python 3.10.6 to PATH &#xff0c;然后一路下一步即可 打开powershell&#xff0c; 确认安装成功 …

#10035. 「一本通 2.1 练习 1」Power Strings

Power Strings 题意简述&#xff1a; 求一个字符串由多少个重复的子串连接而成。 例如 ababab 由三个 ab 连接而成&#xff0c;abcd 由 abcd 由一个 abcd 连接而成。 输入格式 本题多组数据。 每一组数据仅有一行&#xff0c;这一行仅有一个字符串 s s s。 输入的结束标…

IT云运维技术分享

1 运维体系 1.1 市场对运维的需求 时代发展到今天&#xff0c;社会的生活方式与生产方式的全面的数字化&#xff0c;无论是传统企业还是互联网企业&#xff0c;都在全面上云&#xff0c;这也意味着企业的关键业务乃至“身家性命”都已经全部放在 IT 系统之上&#xff0c;因此…

VMware Integrated OpenStack 7.3 - 支持 vSphere 8.0U1 和 NSX 4.1 并向下兼容

VMware Integrated OpenStack 7.3 - 支持 vSphere 8.0U1 和 NSX 4.1 并向下兼容 VMware 支持的 OpenStack 发行版&#xff1a;在 VMware 虚拟化技术之上运行企业级 OpenStack 云 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vio-7/&#xff0c;查看最新版。原创…

android 如何分析应用的内存(八)——Android 7.0以后的malloc debug

android 如何分析应用的内存&#xff08;八&#xff09; 接上文&#xff0c;介绍六大板块中的第三个————malloc调试和libc回调 上一篇文章中&#xff0c;仅仅是在分配和释放的时候&#xff0c;拦截对应的操作。而不能进一步的去检查内存问题。比如&#xff1a;释放之后再…

智能单相电能表

智能单相电能表是一种基于嵌入式系统和电子技术的智能化电能表&#xff0c;具有多种功能和特点&#xff0c;下面是关于智能单相电能表的介绍。 一、工作原理 智能单相电能表采用电子技术和嵌入式系统实现电能测量的智能化和自动化。它包括电压采样装置、电流采样装置、电能计算…

B/S版医院检验科lis系统源码 云lis系统

LIS系统为实验室服务对象提供检验申请、采集标本、结果查询等功能&#xff1b;为实验室工作人员的核收标本、分送标本、传送资料、分析前处理、质量控制、单向或双向通讯、分析后处理、结果审核、打印报告、结果查询等标本检测过程提供全面的技术支持。 .Net Core LIS系统源码…

Git 多账号多仓库配置 SSH

前言 在我们使用 Git 中&#xff0c;有时候会遇到多账号多仓库的情况&#xff0c;比如公司的 GitLab 和 GitHub&#xff0c;以及自己的 GitHub&#xff0c;这时候我们就需要配置多个 SSH 密钥来区分不同的账号和仓库 生成 SSH 密钥 根据你注册仓库的邮箱生成 SSH 密钥&#…

centos下的Nginx的安装

1.Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。其特点是占有内存少&#xff0c;并发能力强。 其他服务器介绍&#xff1a;Apache服务器、Tomcat服务器、Lighttpd服务器 2.nginx依赖安装 yum -y instal…

PSINS工具箱学习(一)下载安装初始化、SINS-GPS组合导航仿真、习惯约定与常用变量符号、数据导入转换、绘图显示

文章目录 一、前言二、相关资源三、下载安装初始化1、下载PSINSyymmdd.rar工具箱文件2、解压文件3、初始化4、启动工具箱导览 四、习惯约定与常用变量符号1、PSINS全局变量结构体 glv2、坐标系定义3、姿态阵/姿态四元数/欧拉角 Cnb/qnb/att4、IMU采样数据 imu5、AVP导航参数 av…

【MySQL 日志管理、备份与恢复】

目录 一、数据库备份的分类1、从物理与逻辑的角度1.1、物理备份: 对数据库操作系统的物理文件&#xff08;如数据文件&#xff0c;日志文件等&#xff09;的备份1.2、逻辑备份 2、从数据库的备份策略角度3、常见的备份方法3.1、物理冷备3.2、专用备份工具mysqldump 或者 mysqlh…

使用Channel的一些业务场景

使用Channel的一些业务场景 首先需要明确的就是&#xff0c;发送方才知道什么时候关闭 channel &#xff0c;这个是比较符合逻辑的。 我们需要知道哪些情况会使 channel 发生 panic 关闭一个 nil 值会引发关闭一个已经关闭的 channel 会引发向一个已经关闭的 channel 发送数据…

破圈丨2023年绿色积分消费返利:云联惠3.0升级版【循环购】商业模式

破圈丨2023年绿色积分消费返利&#xff1a;云联惠3.0升级版【循环购】商业模式 京东供应链商品/自营商品/供应商商品 平台上面产品超过300w款产品&#xff0c;均为京东供应链货品&#xff0c;由京东统一仓储和配送&#xff0c;从源头上面杜绝假冒伪劣产品的存在&#xff0c;然…

three.js中通过gsap动画库实现物体的动画

一、什么是gsap GSAP&#xff08;GreenSock Animation Platform&#xff09;是一个JavaScript动画库&#xff0c;由GreenSock公司开发&#xff0c;用于在Web应用程序中创建高性能动画。 使用GSAP可以通过一些简单的动画操作来实现复杂的动画效果&#xff0c;例如TweenLite、T…