Stitch. 2024-03-12 15:19 采纳率: 0%
浏览 109

点击vxe-column 单元格内,el-select下拉框外区域时,el-select下拉框组件被睡眠消失,点击单元格外下拉框又显示,如何解决

点击vxe-column 单元格内,el-select下拉框外区域时,el-select下拉框组件被睡眠消失,点击单元格外下拉框又显示,如何解决

<vxe-column field="reviewResult" width="140" title="评审结果11" :edit-render="{}" 
    v-if="meetingType == 'result' || meetingType == 'sign'"> 
    <template #default="{ row }"> 
                      <el-select  v-if="true" clearable filterable size="small" v-model="row.reviewResult" :disabled="types == 'view' || getControlRole(row, 'elForm', type)" @change="resultSave(row, 'reviewResult')" @click.stop="handleSelectClick" > 
                          <el-option ref="option" v-for="item in dict.$$PSH_PSJG" :label="item.valueDesc" :value="item.valueCode" :key="item.valueCode"></el-option> 
                      </el-select>          
                  </template> 
</vxe-column>点击<template #default="{ row }">区域外和<vxe-column field="reviewResult" width="140" title="评审结果11" :edit-render="{}" 
    v-if="meetingType == 'result' || meetingType == 'sign'">区域内地方时,下拉框会消失,点击<vxe-column>外后,下拉框又出现,如何解决


  • 写回答

3条回答 默认 最新

  • 关注

    Stitch. 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    根据你的描述,你希望在点击vxe-column单元格内的el-select下拉框外区域时,下拉框不会消失。以下是可能的解决方案:

    1. 使用@click.stop事件修饰符:在el-select下拉框外的元素上添加@click.stop事件修饰符,阻止点击事件的冒泡。这样,点击下拉框外的区域时,点击事件就不会传递到el-select组件上,下拉框就不会消失。
    <template>
      <el-select @click.stop="handleSelectClick">
        <!-- 下拉框内容 -->
      </el-select>
    </template>
    
    1. 添加自定义指令:为了实现点击下拉框外的区域时,下拉框不消失,你可以添加一个自定义指令,监听点击事件并处理。
    <template>
      <el-select v-click-outside="handleClickOutside">
        <!-- 下拉框内容 -->
      </el-select>
    </template>
    
    // 自定义指令
    Vue.directive('click-outside', {
      bind: function (el, binding, vnode) {
        el.clickOutsideEvent = function (event) {
          // 判断点击事件是否在el-select内部
          if (!(el == event.target || el.contains(event.target))) {
            // 执行事件绑定的方法
            vnode.context[binding.expression](event);
          }
        };
        // 添加点击事件监听
        document.addEventListener('click', el.clickOutsideEvent);
      },
      unbind: function (el) {
        // 移除点击事件监听
        document.removeEventListener('click', el.clickOutsideEvent);
      },
    });
    

    在上述解决方案中,第一种方法是使用Vue内置的@click.stop事件修饰符,第二种方法则是自定义一个指令来实现对点击事件的监听和处理。你可以根据你的实际情况选择其中一种方式来解决问题。

    注意:以上代码片段中的代码仅为示例,你需要根据你的具体情况进行相应的修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月12日

悬赏问题

  • ¥15 锌合金的耐温能到多少度。可以持续多长时间
  • ¥15 .net调用本地office组件出现问题
  • ¥15 docker镜像拉取失败请教教我
  • ¥15 https访问nginx上的http
  • ¥15 需要完整规则的五子棋博弈代码
  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零