【关于Element UI中el-autocomplete组件】二、el-autocomplete组件解决@blur与@select事件冲突

小伙伴们,上一篇小编讲了如何在el-autocomplete组件的下拉建议值框的底部添加一个固定按钮,由于开发需求,小编要在原有的基础上监听到输入框的失焦事件也就是@blur事件,但是当小编写好了方法测试一下。
却出现了点击选项也不会将选定的值显示在输入框中,相当于没有选中,因此小编判断是@blur与@select事件冲突,那么问题来了,这是什么原因导致的这两个事件的冲突呢,小编试了@blur.stop也是没有反应以及@blur.capture.native,但是都没办法解决这个冲突,于是小编问了大佬,大佬找了一下午发现是popper-append-to-body设置为false的问题,小编先上代码

<el-autocomplete
   class="voucher-subject-input"
   :ref="'inputcredit_2_'+index"
   :popper-append-to-body="true"
   :class="{ 'subject-opacity': voucher.items[index].showText }"
   v-model="voucher.items[index].subjectName"
   value-key="name"
   :fetch-suggestions="querySearch"
   :highlight-first-item="true"
   @blur="handleSelectBlur(voucher.items[index],index)"
   @select="handleSelectSubject($event,index)"
   @focus="handleFocusSubject($event,index)"
   >
  <template slot-scope="{ item }">
     <el-button
       v-if="item.is_add"
       type="primary" plain
       style="width: 100%;position: absolute;bottom: 0px;left: 0px;"
       class="add-button"
       @click="accAddBtn()"
       >
       添加
    </el-button>
 </template>
</el-autocomplete>

那小编是一个快字的改为true啊,哇哦,这个冲突是解决了,但是小编原本的添加按钮由原本的这样

变成了这样
在这里插入图片描述
也就是小编原本设置的下拉框的内边距失去了作用,那这个可怎么解决呢,小编使用了好几个深度选中器都没办法将自己改的css写入样式中,这是看到el-autocomplete文档有个popper-class参数,它是什么呢?
在这里插入图片描述
下拉列表的类名,那不是正是我想要的吗,于是啊,小编在组件中加入了popper-class=“acc-search”

<el-autocomplete
   class="voucher-subject-input"
   :ref="'inputcredit_2_'+index"
   :popper-append-to-body="true"
   popper-class="acc-search"
   :class="{ 'subject-opacity': voucher.items[index].showText }"
   v-model="voucher.items[index].subjectName"
   value-key="name"
   :fetch-suggestions="querySearch"
   :highlight-first-item="true"
   @blur="handleSelectBlur(voucher.items[index],index)"
   @select="handleSelectSubject($event,index)"
   @focus="handleFocusSubject($event,index)"
   >
  <template slot-scope="{ item }">
     <el-button
       v-if="item.is_add"
       type="primary" plain
       style="width: 100%;position: absolute;bottom: 0px;left: 0px;"
       class="add-button"
       @click="accAddBtn()"
       >
       添加
    </el-button>
 </template>
</el-autocomplete>

小编又是一个快字的在当前页面设置css样式,可是怎么都不生效呢?
原来设置popper-class="acc-search"的话要在全局样式中去修改他,于是小编在App.vue的style中写下这么两行代码

<style>
    /* 修改远程搜索框内容自适应 */
    .acc-search .el-scrollbar__wrap{
      padding-bottom: 40px;
    }
</style>

果不其然,按钮又回到原本的位置了。
困扰小编三天的一个bug终于解决了。
如果小伙伴们有遇到类似的问题,我们可以一起讨论哦,或者小伙伴们有更好的解决方案,麻烦跟小编分享一下哦

以下是使用MATLAB绘制费米能级-本征费米能级的图像的代码和步骤: 1.首先,我们需要定义一些变量,例如温度,费米能级,本征费米能级等。这些变量的值可以从引用中获取。 2.接下来,我们需要使用MATLAB的plot函数绘制费米能级和本征费米能级的曲线。我们可以使用不同的颜色和线型来区分它们。 3.最后,我们需要添加一些标签和标题,以使图像更加清晰和易于理解。 ```matlab % 定义变量 T = 300; % 温度 k = 8.617e-5; % 玻尔兹曼常数 Nc = 2.8e19; % 晶格中的电子数 Nv = 1.04e19; % 晶格中的空穴数 Eg = 1.12; % 硅的带隙宽度 ni = sqrt(Nc * Nv) * exp(-Eg / (2 * k * T)); % 本征载流子密度 Ef = -0.05; % 费米能级 Ec = Ef + Eg / 2; % 导带底部 Ev = Ef - Eg / 2; % 价带顶部 % 绘制费米能级和本征费米能级的曲线 E = linspace(-0.5, 0.5, 1000); % 能量范围 f = 1 ./ (1 + exp((E - Ef) / (k * T))); % 费米分布函数 f0 = 1 ./ (1 + exp((E - Ec) / (k * T))); % 导带底部的费米分布函数 f1 = 1 ./ (1 + exp((E - Ev) / (k * T))); % 价带顶部的费米分布函数 plot(E, f, 'r-', 'LineWidth', 2); % 绘制费米能级曲线 hold on; plot(E, f0, 'b--', 'LineWidth', 2); % 绘制本征费米能级曲线 plot(E, f1, 'b--', 'LineWidth', 2); ylim([0 1.2]); % 设置y轴范围 legend('费米能级', '本征费米能级'); % 添加图例 xlabel('能量 (eV)'); % 添加x轴标签 ylabel('费米分布函数'); % 添加y轴标签 title('费米能级-本征费米能级图像'); % 添加标题 ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值