vue3 + vite + element-plus 踩坑

1, cascader 插件如果启用了多选,要用<el-form-item></el-form-item>包裹,不然会报错

2, el-popover 通过按钮点击手动关闭

//html 主要是定义ref这个属性 
<el-popover placement="bottom" :width="400" trigger="click" ref="pop">
              <template #reference>
                <el-button>选择标签</el-button>
              </template>

              <el-tree
                :data="tagList"
                show-checkbox
                check-on-click-node
              /> 

              <div style="text-align:right;margin-top:20px;">
                  <el-button size="mini" @click="closePop"
                  >关闭</el-button>
                  <el-button type="primary" size="mini" 
                  >搜索</el-button>

              </div>

            </el-popover>

//点击关闭按钮的时候执行这个方法就行
 //关闭popover
    const closePop = () => {
      console.log(pop.value);
      pop.value.visibility = false
    }

  

3,el-cascader 复选的时候,之前只能点击前面的复选框才行,要改成点击选项也可以选中,加入下面的样式就可以。

注意:不能加在scoped的style标签里,单独用一个style标签包裹或者写在全局的css那里也行

<style >
  .el-checkbox{
      position: absolute;
      width: 100%;      
    }
    .el-checkbox + span{
      margin-left: 10px;
    }
</style>

  

4,vue3.x 监听页面关闭和刷新

onMounted(() => {
      window.addEventListener('beforeunload', e => handleUnload(e))
    })

    onUnmounted(() => {
      window.removeEventListener('beforeunload', e => handleUnload(e))
    })

    const handleUnload= (e) => {

        e = e || window.event;
      // 兼容IE8和Firefox 4之前的版本
      if (e) {
          e.returnValue = "您是否确认离开此页面-您输入的数据可能不会被保存";
      }
      // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
      return "您是否确认离开此页面-您输入的数据可能不会被保存";
    }

 

5,

我们在修改element的一些样式的时候,在加了scoped的时候会不起作用,下面是解决方案:

解决方法:起一个类名将页面包裹起来,后面加 /deep/

P.S. 在lang=scss或者其他语言时deep会报错,最好写在lang=css里

<style scoped lang="css">
.limit-page /deep/ .el-checkbox {
   position: relative!important;
}</style>

参考链接:https://www.cnblogs.com/jun-qi/p/10895019.html

 

posted @ 2021-10-15 09:48  哈哈敲敲  阅读(1301)  评论(0编辑  收藏  举报