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

news2024/11/25 2:33:44

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.coloradmin.cn/o/667112.html

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

相关文章

每日一练 | 华为认证真题练习Day63

1、IEEE 802.1D标准中规定桥优先级是多少bit&#xff1f; A. 8 B. 4 C. 16 D. 2 2、RSTP中处于Discarding状态下的端口&#xff0c;虽然会对接收到的数据帧做丢弃处理&#xff0c;但可以根据该端口收到的数据帧维护MAC地址表。 A. 对 B. 错 3、如下图所示&#xff0c;下列…

随笔-不要裸辞

2023年5月份&#xff0c;16-24岁、25-59岁劳动力调查失业率分别为20.8%、4.1%。 先不说这些大数据&#xff0c;就聊聊我身边发生的事儿。 NO1 欢迎你&#xff0c;新同事 A&#xff0c;别的项目组的&#xff0c;先前通过一个同事说过几句话&#xff0c;那是真正的点头之交。今…

「Java核心技术大会 2023」6月重磅启动,邀你共同探讨Java生态(文末送书5本)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

slam十四讲 03 Eigen实践之不同坐标系下的坐标转换

目录 1. 题目 2. 使用欧式变换 3. 使用四元素 1. 题目 已知 (1) 世界坐标系到相机1坐标系变换关系为&#xff0c;即相机1的位姿q1[0.35,0.2,0.3,0.1]^T, t1[0.3,0.1,0.1]^T. (2) 世界坐标系到相机2坐标系变换关系为&#xff0c;即相机2的位姿q1[-0.5,0.4,-0.1,0.2]^T, t2[…

影响无线状态监控系统质量的关键:如何选择MEMS传感器?

随着工业领域对设备状态监测的需求不断增加&#xff0c;智能无线监测器成为一种重要的技术工具。其中&#xff0c;MEMS&#xff08;微机电系统&#xff09;传感器作为无线状态监控系统中的核心组件&#xff0c;发挥着关键的作用。本文将介绍如何为无线状态监控系统选择最佳的ME…

端午将至,VR全景奉上别开生面的“云上”端午节

端午将至&#xff0c;街上早已飘溢着粽子的香气&#xff0c;大家知道端午习俗有哪些吗&#xff1f;除了吃粽子&#xff0c;还有赛龙舟、悬艾蒿、踩露水、佩香囊等。搭乘端午假期的“顺风车”&#xff0c;多地都在推出活动吸引游客&#xff0c;各地文旅期望打造集文化、传承、艺…

在Linux中部署Flask+Gunicorn+Nginx

flask是一个轻量级的基于Werkzeug和Jinja2模板引擎的Web应用框架。gunicorn能与很多Web框架兼容&#xff0c;执行起来很简单&#xff0c;资源消耗很少&#xff0c;并且运行速度很快。 flaskgunicornnginx部署在公网IP为x.x.x.x的服务器上。 flask需要部署在Python3的环境中。…

KingIOServer采集杰控OPC UA服务器数据测试

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 上一篇测试了同一台电脑上&#xff0c;KingIOServer采集杰控OPC DA服务器数据&#xff0c;本篇测试用KingIOServer采集杰控OPC UA服务器数据。 以下记录测试过程。 一、 KingIOServer的OPC UA数据采集介绍 KingIOSer…

少儿英语-思维导图学语法-特殊名词变复数

“通过思维导图&#xff0c;轻松学语法” 正文&#xff1a; 今天我们将一起探索英语中那些特殊的名词复数形式。学习特殊名词的复数变换可以让我们的英语更加地道和流利。让我们来看看一些有趣的例子吧&#xff01; "Man" 变成 "Men" 你可能已经知道 &q…

【数据结构与算法】1、学习动态数组数据结构(基本模拟实现 Java 的 ArrayList 实现增删改查)

目录 一、什么是数据结构(1) 概念(2) 分类 二、线性表三、数组&#xff08;Array&#xff09;(1) 数组的底层结构(2) 数组缺点 四、动态数组&#xff08;Dynamic Array&#xff09;接口设计五、动态数组的设计和基本代码实现(1) 成员变量(2) 代码① get ()② indexOf ()③ clea…

嵌入式实时操作系统的设计与开发New(二)

轮询系统 轮询系统也称为简单循环控制系统&#xff0c;是一种最简单嵌入式实时软件体系结构模型。 在单个微处理情况下&#xff0c;系统由多个函数完成&#xff0c;每个函数负责该系统的一部分功能。 这些函数被循环调用执行&#xff0c;即它们按照一个执行顺序构成一个单向的…

nand flash 介绍

flash名称由来 Flash的擦除操作是以block块为单位的&#xff0c;与此相对应的是其他很多存储设备&#xff0c;是以bit位为最小读取/写入的单位&#xff0c;Flash是一次性地擦除整个块&#xff1a;在发送一个擦除命令后&#xff0c;一次性地将一个block&#xff0c;常见的块的大…

如何在VMware Workstation虚拟机上快速部署AntDB社区版

AntDB社区版采用了一键部署架构&#xff0c;步骤简单&#xff0c;耗时短&#xff0c;部署快&#xff0c;为大家的快速体验提供了极大便利。 这里将通过环境准备、下载AntDB社区版、部署AntDB社区版三个部分跟大家一起体验如何快速完成AntDB社区版在VMware Workstation虚拟机上…

(十二)反射与特性 -反射与预定义特性(1)

一、反射 1、什么是反射 了解反射之前&#xff0c;要先了解一下元数据。元数据指保存在程序集中的一些有关程序及其类型的数据&#xff0c;包括类、结构、委托、接口和枚举等&#xff09;的成员和成员的信息。 程序在运行时&#xff0c;可以查看程序集以及其本身的元数据&…

babycrypt 自己出的第一道逆向题目 WP

Patch掉反调试 先进行了Base32解密&#xff0c;之后是RC4加密 Base32编码表是RC4加密后存储的&#xff0c;动调得到 动调可以看出&#xff0c;经过base32编码密文会在首部添加M7WGC76B 之后密文进行RC4加密 动调得到第二处RC4加密的密钥 解密过程 def rc4(data, key): S l…

面试题:分布式事务有哪些方案及运用场景

一、分布式事务概述 分布式事务是指涉及多个不同资源或数据库的事务处理&#xff0c;这些资源或数据库分布在不同的网络节点上&#xff0c;通过协调器将多个事务组合成一个分布式事务。分布式事务的目的是确保多个事务操作要么全部成功&#xff0c;要么全部失败&#xff0c;保…

白嫖Tesla T4 GPU玩转Stable Diffusion Webui

想要玩stable diffusion&#xff0c;算力不可少&#xff0c;白嫖google colab Tesla T4 GPU 玩转Stable Diffusion Webui 1、google colab上安装stable diffusion webui https://colab.research.google.com/drive/1qL5eD2VESnop8mrbFcHzMmfzqzmRMMF4?uspsharing 在google col…

提高代码调试能力——IDEA debug技巧

一、文章概述 idea debug调试的一些方法 二、按键简单介绍 如上如是debug时的按钮&#xff0c;标上序号便于说明。 1、重新开始调试 图中是已开是debug模式&#xff0c;不管你此时调试到哪个地方&#xff0c;此时点击1就可以重新开始运行程序调试&#xff1a;等价于&#x…

vue配置反向代理的使用

反向代理&#xff1a;常用于生产环境&#xff0c;项目部署时服务器的配置。 反向代理&#xff1a;同样创建一个代理服务器&#xff0c;用于接收客户端发送的请求&#xff0c;再将请求转发给内部网络上的服务器&#xff0c;从服务器中获取数据并返回给客户端。也就是 代理服务端…

一文了解:计算机视觉领域下自监督学习方法原理

计算机视觉领域下自监督学习方法原理 导语为什么在计算机视觉领域中进行自我监督学习&#xff1f; 自监督学习方法Generative methodsBEiT 架构 Predictive methodsContrastive methodsBootstraping methodsSimply Extra Regularization methods 导语 自监督学习是一种机器学习…